2

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 は私のクラスを見つけることができません。doctrine2 と zend2 で yaml を使用する方法の実例を教えてください。

4

1 に答える 1

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

于 2013-02-09T01:47:19.037 に答える