文档提到了开发环境的Symfony/app/config/config_dev.yml
。
我有捆绑的特定配置文件,这些文件加载了Symfony/src/mmt/mrBundle/DependencyInjection/mmtmrExtension.php
例如:Symfony/src/mmt/mrBundle/Resources/config/services.yml
需要由mmtmrExtension.php
加载,但同一目录中的routing.yml
不需要。
我必须遵循命名约定吗?那么如何根据mmtmrExtension.php
中的环境加载Symfony/src/mmt/mrBundle/Resources/config/services_dev.yml
呢?我见过的唯一例子就是硬代码加载services.yml
蚁。
在services.yml
中,我有一些代码,例如:
mmt.mr.DefaultController:
class: mmtmrBundleControllerDefaultController
arguments: [@data_provider]
calls:
- [ "setContainer", [ @service_container ] ]
也许我应该根据环境在此处加载不同的服务?我想使用另一个@data_provider
。
似乎有数百种方法可以做到这一点,但没有一种被文档 100% 涵盖。我宁愿有一种方法,但要有 100% 的文档覆盖率。
也许有人可以指出我正确的位置配置文件的工作原理。"书"没有涵盖太多,烹饪书只提到了与"我如何做"相关的部分。
感谢您阅读本文,希望您能有所帮助。
这必须做到这一点:
//src/Acme/DemoBundle/DepedencyInjection/AcmeDemoExtension.php
$loader = new LoaderYamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
switch ($container->getParameter('kernel.environment')) {
case 'dev':
$loader->load('services_dev.yml');
break;
case 'prod':
$loader->load('services_prod.yml');
break;
case 'test':
$loader->load('services_test.yml');
break;
default:
$loader->load('services_dev.yml');
break;
}