没有作曲家的ZF2 +学说

Flo*_*ris 2 php doctrine-orm zend-framework2

我有一个工作的ZF2(骨架)应用程序,并希望集成Doctrine.

我从github下载了2个模块(DoctrineModule和DoctrineORMModule)因为我无法使用作曲家(所以请不要回答;"得到作曲家").

经过几个小时试图找到问题后,我不断收到以下错误:

致命错误:第54行的doctrine/DoctrineModule/src/DoctrineModule/Module.php中找不到类'Doctrine\Common\Annotations\AnnotationRegistry'.

我花了几个小时搜索并尝试调试,但我找不到解决方法.请帮我.

Ocr*_*ius 5

DoctrineORMModule 没有作曲家没有明确支持自动加载(因为它是一团糟).

从current(0.7.*)版本开始DoctrineORMModule,所需的包如下:

你可以做的是定义init_autoloader.php你的骨架应用程序中的所有自动加载命名空间(解释混乱).要替换的代码是关于自动加载器工厂的部分:

Zend\Loader\AutoloaderFactory::factory(array(
    'Zend\Loader\StandardAutoloader' => array(
        'autoregister_zf' => true,
        'namespaces' => array(
            'Doctrine\Common'   => __DIR__ . '/vendor/doctrine/common',
            'Doctrine\DBAL'     => __DIR__ . '/vendor/doctrine/dbal',
            'Symfony\Console'   => __DIR__ . '/vendor/symfony/console',
            'DoctrineModule'    => __DIR__ . '/vendor/doctrine/doctrine-module',
            'DoctrineORMModule' => __DIR__ . '/vendor/doctrine/doctrine-orm-module',
        ),
    ),
));
Run Code Online (Sandbox Code Playgroud)

您必须自己配置各种git子模块

从版本0.8.*的模块开始,由于doctrine/common最近如何拆分,依赖关系会增加很多,所以考虑找到一个开始使用composer的解决方案,否则你将来会拖延大问题.

这个解决方案现在应该有效.