gpt4 book ai didi

symfony - 加载开发、生产和测试环境的 bundle 特定值

转载 作者:行者123 更新时间:2023-12-02 12:03:37 24 4
gpt4 key购买 nike

文档提到了开发环境的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 ant,就是这样。

services.yml 中,我有一些代码,例如:

mmt.mr.DefaultController:
class: mmt\mrBundle\Controller\DefaultController
arguments: [@data_provider]
calls:
- [ "setContainer", [ @service_container ] ]

也许我应该根据环境在这里加载不同的服务?我想要使​​用另一个 @data_provider

似乎有数百种方法可以做到这一点,但文档中没有一种方法 100% 涵盖。我宁愿采用一种方法来做到这一点,但要实现 100% 的文档覆盖率。

也许有人可以指出我配置文件如何工作的正确位置。 “这本书”没有涵盖太多内容, cooking 书只提到了与“我如何”相关的部分。

感谢您阅读本文,希望对您有所帮助。

最佳答案

这一定能解决问题:

    //src/Acme/DemoBundle/DepedencyInjection/AcmeDemoExtension.php

$loader = new Loader\YamlFileLoader($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;
}

关于symfony - 加载开发、生产和测试环境的 bundle 特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18826466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com