Symfony 2.8.7我的services.yml中有一个简单的别名定义:
h4cc_alice_fixtures:
alias: h4cc_alice_fixtures.manager
这在DEV中非常有效,因为在我的AppKernel中注册了h4cc:
public function registerBundles()
{
$bundles = [
//...
];
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new h4cc\AliceFixturesBundle\h4ccAliceFixturesBundle();
}
return $bundles;
}
在PROD中,我现在遇到依赖注入错误,因为当然无法解析h4cc_alice_fixtures.manager。
我想只在DEV和TEST中使用h4ccAliceFixturesBundle,但目前我只有一个services.yml。
有没有办法只为DEV和TEST定义别名?
更新:
因为有类似的东西:
my_service:
class: Acme\AcmeBundle\Services\MyService
arguments: [ '@tenant_user_service', '@?debug.stopwatch' ]
仅当App处于调试模式时才注入秒表...
我认为Alias可能存在类似的东西。
答案 0 :(得分:1)
您可以使用与 routing_dev.yml 类似的单独services.yml。在 config_dev.yml 和 config_test.yml 的导入部分中,您可以替换现有行:
imports:
- { resource: config.yml }
以下条目:
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services_dev.yml }
就像你已经在你的全局config.yml中拥有它一样。只需将后缀添加到文件中即可。