0

我正在使用 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

我假设我需要为“教义”配置文件编写一个配置扩展,但我坚持这个细节。

任何见解表示赞赏。

4

1 回答 1

0

由于您使用的是普通容器,因此您必须自己配置该doctrine部分。在 Symfony 框架中,它设置了一个依赖注入扩展,你可以在DoctrineBundle中找到它(在那里寻找见解)。

这就是所谓的语义配置

于 2013-08-03T10:23:46.660 回答