依赖注入的标签

编辑该页面

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

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

kernel.event_listener标签。

你可以学习一点关于“标签”,读“服务容器章”部分服务的容器。

下面是关于Symfony2内所有可用的标签信息。ob娱乐下载可能还有其他包使用标签,没有列在这里。

标签名 使用
assetic.asset 注册一个资产当前的资产管理公司
assetic.factory_worker 添加一个工厂工人
assetic.filter 注册一个过滤器
assetic.formula_loader 添加一个公式装载机到当前的资产管理公司
assetic.formula_resource 将资源添加到当前的资产管理公司
assetic.templating.php 删除此服务如果php模板是禁用的
assetic.templating.twig 删除此服务如果树枝模板是禁用的
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娱乐下载
monolog.logger 日志和一个自定义日志通道
monolog.processor 添加一个自定义日志处理器
routing.loader 注册一个定制服务,负载的路线
security.voter 添加一个自定义的选民Symfony的授权逻辑ob娱乐下载
security.remember_me_aware 记得我的身份验证
swiftmailer.plugin 注册自定义SwiftMailer插件
templating.helper 提供你的服务在PHP模板
translation.loader 注册一个定制服务,翻译
translation.extractor 注册一个定制服务,提取翻译消息从一个文件中
translation.dumper 注册一个转储翻译信息定制服务
twig.extension 注册一个定制的树枝延伸
validator.constraint_validator 创建您自己的自定义验证约束
validator.initializer 注册一个服务初始化对象之前验证

第二,定义一个服务:

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:acme.my_filter:类:MyFilter标签:- - - - - -{名称: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配置的关键。

FormTypeCsrfExtension)。

一个表单类型扩展可以修改任何字段在表单的一部分。创建一个表单类型扩展,首先创建一个类,它实现了FormTypeExtensionInterface接口。为简单起见,您经常会扩展AbstractTypeExtension类而不是接口直接:

1 2 3 4 5 6 7 8 9 10
/ / src / Acme / MainBundle /形式/类型/ MyFormTypeExtension.php名称空间Acme\MainBundle\形式\类型;使用ob娱乐下载\组件\形式\AbstractTypeExtension;MyFormTypeExtension扩展AbstractTypeExtension{/ /……填写想要覆盖的任何方法/ /像buildForm (), buildView (), finishView (), setDefaultOptions ()}

为了让Symfony了解表ob娱乐下载单扩展和使用它,给它的形式。type_extension的标签:

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:main.form.type.my_form_type_extension:类:Acme \ MainBundle \ \ \ MyFormTypeExtension型形式标签:- - - - - -{名称:form.type_extension,别名:}

别名标签的关键字段的类型应该应用于这个扩展。例如,扩展应用于任何形式/字段中,使用“形式”价值。

形式猜测的过程。默认情况下,猜测是通过“猜测”形式的基础上,验证元数据和教义的元数据(如果您正在使用原则)。

添加自己的表单类型猜测者,创建一个类,它实现了FormTypeGuesserInterface接口。接下来,标记它的服务定义form.type_guesser(没有选项)。

看到这个类的一个例子可能是,看到的ValidatorTypeGuesser类的形式组件。

缓存:热身或缓存:清晰任务(除非你通过——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名称空间Acme\MainBundle\缓存;使用ob娱乐下载\组件\HttpKernel\CacheWarmer\CacheWarmerInterface;MyCustomWarmer实现了CacheWarmerInterface{公共函数热身(美元cacheDir){/ /执行某种操作“温暖”你的缓存}公共函数isOptional(){返回真正的;}}

isOptional方法应该返回true,如果可以使用应用程序没有调用这个缓存温暖。在Syob娱乐下载mfony 2.0中,可选的温暖总是不管怎样,执行这个函数没有实际效果。

与Symfony注册你的温暖,给它的内核。ob娱乐下载cache_warmer标签:

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:main.warmer.my_custom_warmer:类:Acme \ MainBundle \ \ MyCustomWarmer缓存标签:- - - - - -{名称:kernel.cache_warmer,优先级:0}

优先级值是可选的,默认值为0。这个值可以从-255年到255年,和温暖的顺序将执行他们的优先级。

2.1

添加内核事件订阅者的能力是新到2.1。

启用自定义用户、添加它作为常规服务在你的配置中,并标记kernel.event_subscriber:

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:kernel.subscriber.your_subscriber_name:类:完全限定\ \用户\类\名称标签:- - - - - -{名称:kernel.event_subscriber}

请注意

您的服务必须实现EventSubscriberInterface接口。

请注意

如果你的服务是由一个工厂,你必须正确设置对这个标签参数正确工作。

应用程序但是你可以换频道当注入记录器在服务。

  • YAML
  • XML
  • PHP
1 2 3 4 5 6
服务:my_service:类:完全限定\ \装载机\类\名称参数:[" @logger "]标签:- - - - - -{名称:monolog.logger,渠道:acme}

额外的记录的属性。

让我们看看如何使用内置的IntrospectionProcessor添加文件,日志的类和方法被触发。

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

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

提示

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

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

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

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

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

请注意

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

routing.loader:

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:routing.loader.your_loader_name:类:完全限定\ \装载机\类\名称标签:- - - - - -{名称:routing.loader}

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

AbstractFactory和您的自定义身份验证侦听器扩展AbstractAuthenticationListener,那么你的自定义的身份验证侦听器会自动标记应用和它将自动功能。

isGranted在Syob娱乐下载mfony的安全上下文,一个系统的“选民”在幕后决定如果用户应该访问。的security.voter标记允许您添加您自己的自定义系统的选民。

有关更多信息,阅读食谱文章:如何实现自己的选民将IP地址列入黑名单吗

swiftmailer.plugin(没有选项)。

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

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

templating.helper和定义一个别名属性(助手将通过这个别名模板):

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:templating.helper.your_helper_name:类:完全限定\ \ Helper类\ \的名字标签:- - - - - -{名称:templating.helper,别名:alias_name}

LoaderInterface接口:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/ / src / Acme / MainBundle /翻译/ MyCustomLoader.php名称空间Acme\MainBundle\翻译;使用ob娱乐下载\组件\翻译\加载程序\LoaderInterface;使用ob娱乐下载\组件\翻译\MessageCatalogue;MyCustomLoader实现了LoaderInterface{公共函数负载(美元资源,美元语言环境,美元=“消息”){美元目录=MessageCatalogue (美元语言环境);/ /如何加载一些翻译的“资源”/ /然后设置成目录美元目录- >集(“hello.world”,“Hello World !”,美元);返回美元目录;}}

定制机的负载方法返回一个负责MessageCatalogue

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

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:main.translation.my_custom_loader:类:Acme \ MainBundle \ \ MyCustomLoader翻译标签:- - - - - -{名称:translation.loader,别名:}

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

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

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

2.1

的能力在Symfony 2.1中添加消息提取器是新的。ob娱乐下载

当执行翻译:更新命令,它使用提取器提取翻译消息从一个文件中。默认情况下,Symfony2框架ob娱乐下载有一个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(美元前缀){美元- >前缀=美元前缀;}}
1 2 3 4 5
服务:acme_demo.translation.extractor.foo:类:Acme \ DemoBundle \ \ FooExtractor翻译标签:- - - - - -{名称:translation.extractor,别名:喷火}

2.1

的能力在Symfony 2.1中添加消息矿用汽车是新的。ob娱乐下载

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

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

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

1 2 3 4 5
服务:acme_demo.translation.dumper.json:类:Acme \ DemoBundle \ \ JsonFileDumper翻译标签:- - - - - -{名称:translation.dumper,别名:json}

twig.extension:

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:twig.extension.your_extension_name:类:完全限定\ \类\ \扩展名标签:- - - - - -{名称:twig.extension}

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

在编写自己的扩展之前,看一看树枝官方扩展库已经包含了几个有用的扩展。例如Intl和它的localizeddate过滤器格式日期根据用户的语言环境。这些官员树枝扩展也必须被添加作为常规服务:

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:twig.extension.intl:类:Twig_Extensions_Extension_Intl标签:- - - - - -{名称:twig.extension}

如何创建一个定制的验证约束

ObjectInitializerInterface接口。然后,它与标签validator.initializer标签(没有选项)。

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

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
ob娱乐下载Symfony代码性能”>< /a>
          <p class=ob娱乐下载Symfony代码性能

代码消耗服务器资源。黑焰告诉你”>< /a>
          <p class=代码消耗服务器资源。黑焰告诉你

阅读我们完整的Symfony和PHP目录ob娱乐下载为您的web开发需要的解决方案。”>< /a>
          <p class=阅读我们完整的Symfony和PHP目录ob娱乐下载为您的web开发需要的解决方案。