Symfony中service.yml和config.yml之间有什么区别

时间:2013-12-25 05:09:39

标签: php symfony

config.yml中,我看到根元素monologweb_profiler。这些服务是否可以在service.yml中配置?另一方面,我在service.yml中定义的服务是否可以在config_dev.ymlconfig_prod.yml中定义?

service.ymlconfig.yml的结构有什么不同以及框架与之互动的方式?

2 个答案:

答案 0 :(得分:0)

config.yml是全局配置,包括service.yml。

imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }

只有逻辑上的区别。放在service.yml中的所有参数都可以放在config.yml

答案 1 :(得分:0)

不同之处在于,在config * .yml文件中,会发生所谓的语义配置。每个包都可以暴露这样的semantic configuration。而services.yml文件用于定义捆绑服务。

因此,在config.yml中的monolog下,您可以配置相应的包。您没有定义服务。 monolog捆绑包的服务是在该捆绑包内定义的,您不必了解该协议。

如果您已经注意到了,您会注意到在services.yml中,该部分以services开头,而不是您的包的名称。这是因为您在services部分内定义了服务。

但要回答你问题的第二部分:是的,你可以将services.yml的内容复制到config.yml,但这种分离的优势在于,每个捆绑包都带有服务配置,但你有一个中央配置*每个包的.yml文件。因此,将内容复制到此中心文件并不明智。