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

3
config.yml中,我看到了像monologweb_profiler这样的根元素。它们是可以在service.yml中配置的服务吗?相反,我在service.yml中定义的服务,是否可以在config_dev.ymlconfig_prod.yml中定义?
在结构方面,service.ymlconfig.yml有什么区别?框架与它们交互的方式又有何不同?
2个回答

1

config.yml是全局配置文件,其中包括service.yml。

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

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


0

区别在于,config*.yml文件内部进行所谓的语义配置。每个bundle都可以公开这样的语义配置。而services.yml文件则用于定义您的bundle的服务。

因此,在config.yml中的monolog下,您配置了相应的bundle。您不定义服务。 monolog bundle的服务在该bundle内部定义,您不必知道。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接