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'.
我花了几个小时搜索并尝试调试,但我找不到解决方法.请帮我.
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的解决方案,否则你将来会拖延大问题.
这个解决方案现在应该有效.