繁体   English   中英

覆盖每个bundle symfony2中的parameters.yml

[英]Override parameters.yml in each bundle symfony2

我正在从事一个复杂的Symfony项目。 在项目中,我们有一个核心包,它使用位于app / config中的parameters.yml。

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

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

我已经尝试过preprend方法,但它不适合这种需求。 它只允许我为此包创建新参数,而不能覆盖其他参数。

我认为您误解了Symfony中捆绑软件的想法。 设计上的捆绑软件应该是可重用的模块,因此捆绑软件中的配置是默认配置。 然后可以覆盖app文件夹中的配置中的参数(而不仅仅是!)。

基本思想是:

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

因此,这与您的预期完全相反。 从根本上说,根据当前路由来限制整个应用程序配置是没有意义的,因为捆绑包可以互相使用。 如果您的当前动作将在内部(无重定向)调用另一个捆绑软件的服务甚至控制器,该怎么办?

另外值得一提的是, app文件夹是app最终文件夹,因此,您不仅可以在其中覆盖包的配置,而且还可以覆盖服务,视图模板等其他内容。

编辑:我忘了为您建议解决方案:)

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

找到了解决方案,这是由于dragoste询问了分离的内核。

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

文档可以在这里找到:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM