覆盖每个包symfony2中的parameters.yml

时间:2016-05-18 07:21:27

标签: php symfony

我正在开发一个复杂的Symfony项目。在项目中,我们有一个核心包,它使用位于app / config。

中的parameters.yml

每个其他AppBundle将继承此CoreBundle并将对应一个网站。

我需要的是在每个捆绑包中有特定的参数来覆盖默认参数之一:当我将使用将我带入控制器捆绑包的路由时,此特定捆绑包的参数必须覆盖所有其他参数的。

我已尝试过预先发布方法,但它不适合这种需要。它只允许我为这个包创建新参数,但不能覆盖其他参数。

2 个答案:

答案 0 :(得分:4)

我认为你误解了Symfony中捆绑的想法。 Bundle by design应该是一个可重用的模块,因此放在一个bundle中的配置是 default 。然后可以覆盖app文件夹中的配置中的参数(而不仅仅是!)。

基本理念是:

  

捆绑包不使用应用程序。应用程序使用捆绑包。

所以它与你的预期完全相反。实际上,根据当前路由调整整个应用程序配置是没有意义的,因为bundle可以互相使用。如果您的电流操作将在内部(没有重定向)调用另一个软件包的服务甚至控制器怎么办?

另外值得一提的是,app文件夹是应用程序的 final 文件夹,因此您不仅可以在其中覆盖bundle的配置,还可以覆盖其他内容,例如服务,视图模板和等等。

编辑:我忘了为您推荐一个解决方案:)

由于您想在bundle中使用自定义参数,为什么首先需要默认值?只需为每个不会被应用程序配置覆盖的包创建单独的参数 namespace 。然后只在该捆绑包中使用它。

答案 1 :(得分:0)

感谢dragoste询问分离的内核。

为了解决我的问题,我不得不拆分内核:每个网站一个。

可在此处找到文档:

http://jolicode.com/blog/multiple-applications-with-symfony2