Symfonyob娱乐下载 3.3新增功能:服务自动配置
2017年4月27日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
在Syob娱乐下载mfony 3.3中配置服务要简单得多多亏了这些新的配置选项:
_defaults
属性的默认值公共
,标签
而且自动装配
在给定文件中定义的服务选项;_instanceof
:根据服务的类定义服务的默认配置twig.extension
标记到实现的任何服务Twig_ExtensionInterface
).
这种简化的演变是新的可以使用autoconfigure
选项,就像自动版本的_instanceof
.如果启用,该选项将根据服务实现的类添加一些默认配置。
让我们假设你想要自动添加标签到你的安全选民:
1 2 3 4 5 6 7 8 9
服务:_defaults:自动装配:真正的_instanceof:ob娱乐下载Symfony核心组件\ \安全\ \ \选民\ VoterInterface授权:标签:(security.voter)AppBundle \安全\ PostVoter:~
现在问问自己:如果您正在用实现的类注册服务VoterInterface
,什么时候你不希望它被贴上标签security.voter
?换句话说,服务实现VoterInterface
只能是安全选民,除非你做了一些非常奇怪的事情。
同样的例子可以使用autoconfigure
看起来是这样的:
1 2 3 4 5 6
服务:_defaults:自动装配:真正的可以使用autoconfigure:真正的AppBundle \安全\ PostVoter:~
这是因为每个启用的包都有机会添加一个或多个自动化的包_instanceof
定义。当然,我们已经为所有常见的Symfony服务启用了此功能:命令、表单类型、事件订阅者等。ob娱乐下载
这不是魔法
每当我们引入一个新特性来自动化服务配置时,一些开发人员很快就会认为它是“神奇的”。对我们来说,“魔法”意味着某些事情在你没有明确要求的情况下发生了。魔术是不好的,因为它会导致WTF时刻和难以调试的问题。
方法,否则此特性将无法工作可以使用autoconfigure
选项。此外,它只适用于您所包含的同一文件中定义的服务可以使用autoconfigure
,所以不会有副作用。简而言之,这不是魔法,只是自动化。
发表在#生活在边缘
评论
托马斯Votruba
2017年4月27日在22:41
只是想知道,是否有一种情况下,你不需要' autoconfigure: true '默认?
@托马斯,这将使它变得神奇。
@Javier最后一部分真的会受益于一些关于这种非魔法是如何发生的解释。Symfony如何ob娱乐下载知道如何使用VoterInterface。
@Javier最后一部分真的会受益于一些关于这种非魔法是如何发生的解释。Symfony如何ob娱乐下载知道如何使用VoterInterface。
@Niels在这一段中简要解释了“它是如何工作的”:
这是因为每个启用的bundle都有机会添加一个或多个自动化的_instanceof定义。当然,我们已经为所有常见的Symfony服务启用了这个功能:命令、表单类型、事件订阅者等等。”ob娱乐下载
这是因为每个启用的bundle都有机会添加一个或多个自动化的_instanceof定义。当然,我们已经为所有常见的Symfony服务启用了这个功能:命令、表单类型、事件订阅者等等。”ob娱乐下载
Titouan Galopin is a certified Symfony engineer and a certified Twig designer.
Get certified! Online exams available in all countries.
Register Now