我正在使用DoctrineORMModule将Doctrine2与Zend2集成。当我使用各种示例中描述的AnnotationDriver时,一切正常。但是,我无法让YamlDriver工作。在我的module.config.php中,我试过了:
'doctrine' => array(
'driver' => array(
'ApplicationDriver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/Application/Entity')
),
'YamlDriver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\YamlDriver',
'cache' => 'array',
'extension' => '.dcm.yml',
'paths' => array(__DIR__ . '/../src/Application/Mapping')
),
'orm_default' => array(
'drivers' => array(
'Application\Entity' => 'ApplicationDriver',
'Application\Mapping' => 'YamlDriver'
)
)
)
)
但是,EntityManager无法找到我的类。你给我一个如何使用yaml与doctrine2和zend2的工作实例?
答案 0 :(得分:3)
我假设您的实体位于命名空间Application\Entity
中:这意味着您应该为该命名空间分配驱动程序,如下例所示:
'doctrine' => array(
'driver' => array(
'MyYamlDriver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\YamlDriver',
'cache' => 'array',
'extension' => '.dcm.yml',
'paths' => array(__DIR__ . '/mappings')
),
'orm_default' => array(
'drivers' => array(
'Application\Entity' => 'MyYamlDriver',
)
)
)
)
基本上,配置将特定的命名驱动程序映射到您要使用的命名空间。在这种情况下,MyYamlDriver
被指定用于处理命名空间Application\Entity