我正在使用Symfony 2组件构建一个库,其核心是我正在使用Symfony的依赖注入。
对于配置,我只需在创建服务容器后加载配置文件,如下所示:
$container = new ContainerBuilder();
$loader = new YamlFileLoader( $container, new FileLocator( $configPath ) );
$loader->load('container.yml');
$this->setContainer( $container );
这只是加载我的所有服务。但是,我现在需要配置Doctrine 2.当我添加一个基本的Doctrine配置文件时:
doctrine:
dbal:
default_connection: default
connections:
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
AcmeDemoBundle: ~
AcmeStoreBundle: ~
运行测试时出现以下错误:
Symfony\Component\DependencyInjection\Exception\InvalidArgumentException: There is no extension able to load the configuration for "doctrine". Looked for namespace "doctrine", found none
我假设我需要为“doctrine”配置文件编写配置扩展,但我仍然坚持这方面的细节。
任何见解都表示赞赏。
答案 0 :(得分:0)
由于您使用的是普通容器,因此您必须自己配置doctrine
部分。在Symfony框架中,它设置了一个依赖注入扩展,你可以在DoctrineBundle中找到它(在那里寻找见解)。
这就是所谓的semantic configuration。