内置Symfonyob娱乐下载服务标签

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

服务标签使用的机制吗DependencyInjection组件国旗的服务,需要特殊处理,如控制台命令或树枝扩展。

这些是最常见的标签Symfony提供的组件,但在您的应用程序可能有多个标记可用第三方提ob娱乐下载供的包:

标签名 使用
assetic.asset 注册一个资产当前的资产管理公司
assetic.factory_worker 添加一个工厂工人
assetic.filter 注册一个过滤器
assetic.formula_loader 添加一个公式装载机到当前的资产管理公司
assetic.formula_resource 将资源添加到当前的资产管理公司
assetic.templating.php 删除此服务如果PHP模板是禁用的
assetic.templating.twig 删除此服务如果树枝模板是禁用的
auto_alias 根据容器参数的值定义的别名
console.command 添加一个命令
container.hot_path 添加到列表总是所需的服务
controller.argument_value_resolver 注册一个价值等控制器参数的解析器请求
data_collector 创建一个类,该类收集自定义数据分析器
doctrine.event_listener 添加一个事件监听器
doctrine.event_subscriber 添加一个教义事件订阅者
form.type 创建一个自定义表单字段类型
form.type_extension 创建一个定制的“形式扩展”
form.type_guesser 添加自己的逻辑“表单类型猜”
kernel.cache_clearer 注册您的服务被称为缓存清理过程
kernel.cache_warmer 注册您的服务被称为缓存变暖过程
kernel.event_listener 听不同的事件/ Symfony的钩子ob娱乐下载
kernel.event_subscriber 订阅的一组不同的事件/ Symfony的钩子ob娱乐下载
kernel.fragment_renderer 添加新的HTTP内容呈现策略
kernel.reset 请求之间允许清理服务
monolog.logger 日志和一个自定义日志通道
monolog.processor 添加一个自定义日志处理器
routing.loader 注册一个定制服务,负载的路线
routing.expression_language_provider 注册一个供应商在路由表达式语言功能
security.expression_language_provider 注册一个提供者的表达式语言功能安全
security.voter 添加一个自定义的选民Symfony的授权逻辑ob娱乐下载
security.remember_me_aware 记得我的身份验证
serializer.encoder 注册一个新的编码器序列化器服务
serializer.normalizer 注册一个新的标准化者序列化器服务
swiftmailer.default.plugin 注册自定义SwiftMailer插件
templating.helper 提供你的服务在PHP模板
translation.loader 注册一个定制服务,翻译
translation.extractor 注册一个定制服务,提取翻译消息从一个文件中
translation.dumper 注册一个转储翻译信息定制服务
twig.extension 注册一个定制的树枝延伸
twig.loader 注册一个定制服务,负载树枝模板
validator.constraint_validator 创建您自己的自定义验证约束
validator.initializer 注册一个服务初始化对象之前验证

assetic.asset

目的:注册一个资产与当前的资产管理公司

assetic.factory_worker

目的:添加一个工厂的工人

一个工厂的工人是一个类实现Assetic \ \工厂工人\ WorkerInterface。它的过程(美元资产)为每个资产在资产创建方法被调用。你甚至可以修改一个资产或返回一个新的。

为了添加一个新工人,首先创建一个类:

1 2 3 4 5 6 7 8 9 10 11
使用Assetic\资产\AssetInterface;使用Assetic\工厂\工人\WorkerInterface;mywork实现了WorkerInterface{公共函数过程(AssetInterface美元资产){/ /……改变美元资产或返回一个新的}}

然后注册作为一个标记服务:

  • YAML
  • XML
  • PHP
1 2 3
服务:AppBundle \ Assetic \ CustomWorker:标签:(assetic.factory_worker)

assetic.filter

目的:注册一个过滤器

AsseticBundle使用这个标记注册常见的过滤器。您还可以使用这个标签注册您自己的过滤器。

首先,您需要创建一个过滤器:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
使用Assetic\资产\AssetInterface;使用Assetic\过滤器\FilterInterface;MyFilter实现了FilterInterface{公共函数filterLoad(AssetInterface美元资产){美元资产- >setContent (“警报(“哟”);”美元资产- >getContent ());}公共函数filterDump(AssetInterface美元资产){/ /……}}

第二,定义一个服务:

  • YAML
  • XML
  • PHP
1 2 3 4
服务:AppBundle \ Assetic \ CustomFilter:标签:- - - - - -{名称:assetic.filter,别名:my_filter}

最后,应用过滤器:

1 2 3 4 5 6
{%javascript“@AcmeBaseBundle /资源/公共/ js /全球。js的过滤器= ' my_filter ' %}<脚本src={{asset_url}}>< /脚本>{%endjavascripts%}

你也可以运用你的过滤器通过assetic.filters.my_filter.apply_to这里描述的配置选项:如何应用一个Assetic过滤到一个特定的文件扩展名。为了做到这一点,你必须定义过滤服务在一个单独的xml配置文件和通过指向这个文件的路径assetic.filters.my_filter.resource配置的关键。

assetic.formula_loader

目的:添加一个公式装载机到当前的资产管理公司

一个公式加载程序是一个类实现工厂Assetic \ \程序\ FormulaLoaderInterface接口。该类负责加载资产从一种特定的资源(例如,树枝模板)。Assetic船只装载机为PHP和树枝模板。

一个别名属性定义的名称加载程序。

assetic.formula_resource

目的:将资源添加到当前的资产管理公司

资源是可以从公式。例如,树枝模板资源。

assetic.templating.php

目的:删除此服务如果PHP模板是禁用的

标记服务将会从容器中删除,如果framework.templating.engines不包含PHP配置部分。

assetic.templating.twig

目的:删除此服务如果树枝模板是禁用的

标记服务将会从容器中删除framework.templating.engines不包含配置部分嫩枝

auto_alias

目的:定义别名基于容器参数的值

考虑以下配置定义了三个不同但相关服务:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10
服务:app.mysql_lock:类:AppBundle \ \ MysqlLock锁公众:app.postgresql_lock:类:AppBundle \ \ PostgresqlLock锁公众:app.sqlite_lock:类:AppBundle \ \ SqliteLock锁公众:

而不是处理这三个服务,您的应用程序需要一个通用的app.lock服务,这些服务将别名之一,这取决于一些配置。多亏了auto_alias选项中,可以自动创建别名基于一个配置参数的值。

考虑到一个配置参数database_type的存在。然后,通用app.lock服务可以定义如下:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10
服务:app.mysql_lock:#……app.postgresql_lock:#……app.sqlite_lock:#……app.lock:标签:- - - - - -{名称:auto_alias,格式:“应用,% database_type % _lock”}

格式选项定义表达式用于构建服务的名称别名。这个表达式可以使用任何容器参数(像往常一样,包装他们的名字%字符)。

请注意

当使用auto_alias标签,这不是强制定义别名私人服务。然而,这样做(就像在上面的例子中)是有道理的大多数时候,防止直接访问这些服务,而不是使用通用服务别名。

请注意

您需要手动添加ob娱乐下载\组件\ DependencyInjection\编译器\ AutoAliasServicePass编译器传递给这个特性工作的容器。

console.command

目的:添加一个命令给应用程序

有关服务容器中注册自己的命令,阅读如何定义命令服务

container.hot_path

3.4

container.hot_path标签是在Symfony 3.4中引入的。ob娱乐下载

目的:添加到列表的总所需的服务

这个标签标识的服务总是必要的。只有应用于很短的列表(如引导服务路由器,event_dispatch,http_kernel,request_stack等)。然后,它传播到所有这些服务的依赖关系,事件侦听器的特殊情况,只有上市事件传播到相关的听众。

它将取代,生成缓存服务工厂,由纯内联PHP自动装载include_once。的好处是完全绕过自动装卸机服务和他们的类层次结构。结果是显著的性能改进。

请谨慎使用这个标签,你必须确保标记服务总是使用。

controller.argument_value_resolver

目的:注册一个价值等控制器参数的解析器请求

解析器实现价值ArgumentValueResolverInterface控制器,用于解决参数值所描述:扩展操作参数解决

data_collector

目的:创建一个类,该类收集自定义数据分析器

有关创建您自己的自定义数据收集、阅读如何创建一个定制的数据收集器篇文章。

doctrine.event_listener

目的:添加一个事件监听器

创造学说事件监听器的详细信息,阅读学说事件监听器和用户篇文章。

doctrine.event_subscriber

目的:添加一个教义事件订阅者

有关创建学说事件订阅者,阅读学说事件监听器和用户篇文章。

form.type

目的:创建一个自定义表单字段类型

创建您自己的自定义表单类型的详细信息,阅读如何创建一个自定义表单字段类型篇文章。

form.type_extension

目的:创建一个自定义的“形式扩展”

有关创建表单类型扩展,阅读如何创建一个表单类型扩展篇文章。

form.type_guesser

目的:添加自己的逻辑“表单类型猜”

这个标签允许您添加自己的逻辑形式猜测的过程。默认情况下,猜测是通过“猜测”形式的基础上,验证元数据和教义的元数据(如果您正在使用原则)或推动元数据(如果您正在使用推动)。

另请参阅

有关如何创建自己的类型的信息推测者,明白了创建一个自定义类型猜测者

kernel.cache_clearer

目的:注册您的服务被称为缓存清理过程

缓存清理发生每当你打电话缓存:清晰命令。如果你的包缓存文件,你应该添加自定义缓存清晰清除缓存清理过程中这些文件。

为了注册您的自定义缓存清晰,首先您必须创建一个服务类:

1 2 3 4 5 6 7 8 9 10 11 12
/ / src / AppBundle /缓存/ MyClearer.php名称空间AppBundle\缓存;使用ob娱乐下载\组件\HttpKernel\CacheClearer\CacheClearerInterface;MyClearer实现了CacheClearerInterface{公共函数清晰的(美元cacheDirectory){/ /清理缓存}}

如果你使用默认的服务。yml配置,你的服务将会自动标记kernel.cache_clearer。但是,你也可以手动注册:

  • YAML
  • XML
  • PHP
1 2 3
服务:AppBundle \ \ MyClearer缓存:标签:(kernel.cache_clearer)

kernel.cache_warmer

目的:注册您的服务被称为缓存变暖过程

缓存变暖发生当你运行缓存:热身缓存:清晰命令(除非你通过——no-warmup缓存:清晰)。它也运行处理请求时,如果不是通过一个命令。

目的是初始化任何所需缓存的应用程序,防止第一个用户任何重要的“缓存命中”,缓存动态生成。

注册自己的缓存温暖,首先创建一个服务实现CacheWarmerInterface接口:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/ / src / Acme / MainBundle /缓存/ MyCustomWarmer.php名称空间AppBundle\缓存;使用ob娱乐下载\组件\HttpKernel\CacheWarmer\CacheWarmerInterface;MyCustomWarmer实现了CacheWarmerInterface{公共函数热身(美元cacheDirectory){/ /……做一些操作“温暖”你的缓存吗}公共函数isOptional(){返回真正的;}}

isOptional ()方法应该返回true,如果可以使用应用程序没有调用这个缓存温暖。在Syob娱乐下载mfony中,可选的温暖总是默认执行(你可以改变这一用——no-optional-warmers选择在执行命令)。

如果你使用默认的服务。yml配置,你的服务将会自动标记kernel.cache_warmer。但是,你也可以手动注册:

  • YAML
  • XML
  • PHP
1 2 3 4
服务:AppBundle \ \ MyCustomWarmer缓存:标签:- - - - - -{名称:kernel.cache_warmer,优先级:0}

请注意

优先级是可选的,它的值是一个积极或消极的整数,默认为0。数越高,执行的长手套的早些时候。

谨慎

如果您的缓存温暖失败的执行,因为任何例外,Symfony不会再次尝试执行它在接下来的请求。ob娱乐下载因此,您的应用程序和/或包时应准备的内容缓存生成的温暖并不可用。

除了你自己的缓存的长手套,Symfony组件和第三方包定义缓存的长手套也达到自ob娱乐下载己的目的。你可以列出所有使用下面的命令:

1
美元php bin /控制台调试:容器——标签= kernel.cache_warmer

kernel.event_listener

目的:听不同的事件/ Symfony的钩子ob娱乐下载

Symfony应用程序执行期间,不同的事件触发,你还ob娱乐下载可以发送自定义事件。这个标签允许您你自己的类到这些事件。

对于一个完整的例子侦听器,阅读事件和事件监听器篇文章。

kernel.event_subscriber

目的:订阅一组不同的事件/ Symfony的钩子ob娱乐下载

这是一个替代的方法来创建一个事件侦听器,和推荐的方式(而不是使用kernel.event_listener)。看到事件和事件监听器

kernel.fragment_renderer

目的:添加一个新的HTTP内容呈现策略

添加一个新的渲染策略——除了核心策略EsiFragmentRenderer——创建一个类,它实现了FragmentRendererInterface,注册一个服务,然后标记它kernel.fragment_renderer

kernel.reset

目的:清理服务请求之间

kernel.terminate事件,Symfob娱乐下载ony寻找任何服务标记kernel.reset标签重新启动他们的状态。这是通过调用的方法,他的名字叫中配置方法参数的标签。

这是很有用的项目应用程序服务器运行时重用Symfony应用程序请求之间来提高性能。ob娱乐下载这个标签是内置的应用举例数据收集器分析器删除他们所有的信息。

monolog.logger

目的:使用一个自定义日志记录通道与独白

独白可以分享其处理程序之间的一些日志记录通道。记录器服务使用渠道应用程序但是你可以换频道当注入记录器在服务。

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:AppBundle \ Log \ customlog:参数:(“@logger”)标签:- - - - - -{名称:monolog.logger,渠道:应用程序}

提示

您还可以配置自定义渠道配置和检索相应的日志记录器服务直接从服务容器(见如何为不同的文件日志消息吗)。

monolog.processor

目的:日志记录添加一个定制的处理器

独白记录器中处理器允许您添加或添加额外的数据处理程序的记录。一个处理器接收记录作为参数,必须返回后添加一些额外的数据额外的记录的属性。

内置的IntrospectionProcessor可以用来添加文件,行,日志的类和方法被触发。

您可以添加一个处理器在全球范围内:

  • YAML
  • XML
  • PHP
1 2 3
服务:独白\处理器\ IntrospectionProcessor:标签:(monolog.processor)

提示

如果你的服务不是一个可调用(使用__invoke ())您可以添加方法使用特定的方法属性的标记。

您还可以添加一个处理器为一个特定的处理器使用处理程序属性:

  • YAML
  • XML
  • PHP
1 2 3 4
服务:独白\处理器\ IntrospectionProcessor:标签:- - - - - -{名称:monolog.processor,处理程序:firephp}

您还可以添加一个处理器为一个特定的日志记录频道使用通道属性。这只注册处理器安全日志记录通道用于安全组件:

  • YAML
  • XML
  • PHP
1 2 3 4
服务:独白\处理器\ IntrospectionProcessor:标签:- - - - - -{名称:monolog.processor,渠道:安全}

请注意

你不能同时使用处理程序通道属性相同的标记处理程序之间共享所有频道。

routing.loader

目的:注册一个定制服务,负载的路线

启用自定义路由装载机,把它作为常规服务在你的配置和标签routing.loader:

  • YAML
  • XML
  • PHP
1 2 3
服务:AppBundle \ \ CustomLoader路由:标签:(routing.loader)

有关更多信息,请参见如何创建一个定制的路线装载机

routing.expression_language_provider

目的:供应商注册一个表达式语言功能的路由

这个标签是用来自动注册表达功能提供者路由表达式的组件。使用这些提供者,您可以定制函数添加到路由表达式语言。

security.expression_language_provider

目的:注册一个提供者的表达式语言功能安全

这个标签是用来自动注册表达功能提供者安全表达组件。使用这些提供者,您可以添加自定义功能安全表达式语言。

security.remember_me_aware

目的:允许记得我身份验证

这个标签内部使用允许记得我认证工作。如果你有一个自定义的身份验证方法,用户可以记得我验证,那么您可能需要使用这个标签。

如果你的自定义的身份验证工厂扩展AbstractFactory和您的自定义身份验证侦听器扩展AbstractAuthenticationListener,那么你的自定义的身份验证侦听器将自动应用这个标签,它会自动功能。

security.voter

目的:添加一个自定义的选民Symfony的授权逻辑ob娱乐下载

当你打电话isGranted ()Symob娱乐下载fony的授权检查器,一个系统的“选民”在幕后决定如果用户应该访问。的security.voter标记允许您添加您自己的自定义系统的选民。

有关更多信息,阅读如何使用选民来检查用户的权限篇文章。

serializer.encoder

目的:注册一个新的编码器序列化器服务

标记的类应该实现EncoderInterfaceDecoderInterface

更多细节,请参阅如何使用序列化器吗

serializer.normalizer

目的:注册一个新的标准化者的序列化器服务

标记的类应该实现NormalizerInterfaceDenormalizerInterface

更多细节,请参阅如何使用序列化器吗

默认的优先级标准化者可以在找到registerSerializerConfiguration ()方法。

swiftmailer.default.plugin

目的:注册一个定制SwiftMailer插件

如果您正在使用一个自定义SwiftMailer插件(或想要创建一个),您可以通过创建一个服务注册到SwiftMailer插件并标记swiftmailer.default.plugin(没有选项)。

请注意

默认的在这个标签是梅勒的名字。如果你有多个邮件配置或改变了默认的梅勒名出于某种原因,你应该改变它的名字你的梅勒为了使用这个标签。

一个SwiftMailer插件必须实现Swift_Events_EventListener接口。有关插件的更多信息,请参阅SwiftMailer的插件文档欧宝官网下载app

几个SwiftMailer插件Symfony的核心,通过不同的配置可以被激活。ob娱乐下载有关详细信息,请参见梅勒配置引用(SwiftmailerBundle)

templating.helper

目的:使你的服务中可用的PHP模板

启用自定义模板辅助,把它作为常规服务在你的配置中,标记它templating.helper和定义一个别名属性(助手将通过这个别名模板):

  • YAML
  • XML
  • PHP
1 2 3 4
服务:AppBundle \模板\ AppHelper:标签:- - - - - -{名称:templating.helper,别名:alias_name}

translation.loader

目的:注册一个定制服务,翻译

默认情况下,翻译从文件系统装载在各种不同的格式(YAML、XLIFF、PHP等)。

现在,注册您的加载程序作为服务和标记translation.loader:

  • YAML
  • XML
  • PHP
1 2 3 4
服务:AppBundle \ \ MyCustomLoader翻译:标签:- - - - - -{名称:translation.loader,别名:}

别名选项是必需的和非常重要的:它定义了文件“后缀”,将用于使用此加载程序的资源文件。例如,假设您有一些习俗格式,你需要加载。如果你有一个文件,其中包含法语翻译的消息域,那么你可能有一个文件app /资源/翻译/ messages.fr.bin

当Symfob娱乐下载ony试图加载文件时,它将路径传递给您的自定义加载程序的美元的资源论点。然后您可以执行任何逻辑上你需要文件来加载你的翻译。

如果你从数据库加载翻译,你仍然需要一个资源文件,但它可能是空白或包含一些信息从数据库中加载这些资源。这个文件是触发的关键load ()方法自定义加载程序。

translation.extractor

目的:注册一个定制服务,从一个文件中提取信息

当执行翻译:更新命令,它使用提取器提取翻译消息从一个文件中。默认情况下,有一个Symfonyob娱乐下载框架TwigExtractor和一个PhpExtractor,这有助于发现和提取翻译键从树枝模板和PHP文件。

您可以创建自己的器通过创建一个实现类ExtractorInterface和标签的服务translation.extractor。所需的标签有一个选择:别名,它定义了萃取器的名称:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25日26日
/ / src / Acme / DemoBundle /翻译/ FooExtractor.php名称空间Acme\DemoBundle\翻译;使用ob娱乐下载\组件\翻译\\ExtractorInterface;使用ob娱乐下载\组件\翻译\MessageCatalogue;FooExtractor实现了ExtractorInterface{受保护的美元前缀;/ * * *提取翻译信息从模板目录的目录。* /公共函数提取(美元目录,MessageCatalogue美元目录){/ /……}/ * * *设置前缀应该用于新发现消息。* /公共函数setPrefix(美元前缀){美元- >前缀=美元前缀;}}
  • YAML
  • XML
  • PHP
1 2 3 4
服务:应用翻译\ \ CustomExtractor:标签:- - - - - -{名称:translation.extractor,别名:喷火}

translation.dumper

目的:注册一个定制服务,将消息转储到一个文件中

译器从模板中提取所有消息,矿用汽车执行将消息转储到一个翻译文件在一个特定的格式。

ob娱乐下载Symfony已经伴随着许多的矿用汽车:

您可以创建自己的翻车机通过扩展FileDumper或实现DumperInterface和标签的服务translation.dumper。标签有一个选项:别名这个名字是用来确定应该使用清洁工人。

  • YAML
  • XML
  • PHP
1 2 3 4
服务:AppBundle \ \ JsonFileDumper翻译:标签:- - - - - -{名称:translation.dumper,别名:json}

twig.extension

目的:注册一个定制的树枝扩展

让树枝延伸,把它作为一个常规的服务在你的配置和标签twig.extension。如果你使用默认的服务。yml配置,服务auto-registered auto-tagged。但是,你也可以手动注册:

  • YAML
  • XML
  • PHP
1 2 3
服务:AppBundle \树枝\ AppExtension:标签:(twig.extension)

如何创建实际的嫩枝上的信息扩展类,明白了树枝的文档欧宝官网下载app在主题或阅读如何编写一个定制的树枝扩展篇文章。

twig.loader

目的:注册一个定制服务,负载树枝模板

默认情况下,Symfonob娱乐下载y只使用一个树枝装载机- - - - - -FilesystemLoader。如果你需要加载树枝从另一个资源模板,您可以创建一个服务新加载器和标签twig.loader

如果你使用默认的服务。yml配置,服务将自动标记由于自动配置。但是,你也可以手动注册:

  • YAML
  • XML
  • PHP
1 2 3 4
服务:AppBundle \树枝\ CustomLoader:标签:- - - - - -{名称:twig.loader,优先级:0}

请注意

优先级是可选的,它的值是一个积极或消极的整数,默认为0。加载器更高的数字是尝试第一次。

validator.constraint_validator

目的:创建您自己的自定义验证约束

这个标签允许您创建自己的自定义注册验证约束。有关更多信息,阅读如何创建一个定制的验证约束篇文章。

validator.initializer

目的:注册一个服务初始化对象之前验证

这个标签提供了一个非常罕见的功能,允许您执行某种操作一个对象在它的验证。例如,它的教义所使用的查询所有的延迟加载的数据对象的验证。没有这个,一些教义实体数据似乎是“失踪”验证时,即使这不是真的。

如果你需要使用这个标签,就创建一个新类,它实现了ObjectInitializerInterface接口。然后,它与标签validator.initializer标签(没有选项)。

例如,看到DoctrineInitializer类内部的教义桥。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。