我刚刚安装了Sylius Settings bundle .

在作曲家完成其工作之后,在将所有内容设置为文档(上面的链接)之后,启用Sylius设置包会导致以下错误:

The service definition "doctrine.orm.default_metadata_driver" does not exist.

我搜索了整个供应商文件夹的这个关键字(整个服务名称),但它只在一些Doctrine测试文件中找到它,而不是其他地方 . 谁知道它是什么?也许这只是SF2中的“遗留漏洞”?

或许不是 . 我暂时找到了这堂课:

学说\包\ DoctrineBundle \ DependencyInjection \编译\ DoctrineOrmMappingsPass

特别是这部分(构造函数):

public function __construct($driver, array $namespaces, array $managerParameters, $enabledParameter = false, array $aliasMap = array())
{
    $managerParameters[] = 'doctrine.default_entity_manager';
    parent::__construct(
        $driver,
        $namespaces,
        $managerParameters,
        'doctrine.orm.%s_metadata_driver',
        $enabledParameter,
        'doctrine.orm.%s_configuration',
        'addEntityNamespace',
        $aliasMap
    );
}

(注意:“'doctrine.orm . %s_metadata_driver',”作为部分硬编码的参数)

我想知道它是否与我不使用ORM,但PHPCR-ODM作为默认连接类型(ORM是非默认的附加连接层)这一事实有关 .

config.yml部分引用包:

sylius_settings:
    driver: doctrine/orm

doctrine_cache:
    providers:
        my_apc_metadata_cache:
            type: apc
            namespace: metadata_cache_ns
        my_apc_query_cache:
            namespace: query_cache_ns
            apc: ~
        sylius_settings:
            type: file_system

没什么特别的 .