php - ZF2+无 Composer 主义

标签 php doctrine-orm zend-framework2

我有一个正在运行的 ZF2(骨架)应用程序,并且想要集成 Doctrine。

我已经从 github 下载了 2 个模块(DoctrineModule 和 DoctrineORMModule),因为我无法使用 Composer(所以请不要回答“获取 Composer”)。

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

fatal error :在第 54 行 Doctrine/DoctrineModule/src/DoctrineModule/Module.php 中找不到类“Doctrine\Common\Annotations\AnnotationRegistry”。

我花了几个小时的时间进行搜索并尝试调试,但找不到修复它的方法。请帮助我。

最佳答案

DoctrineORMModule 不明确支持没有 Composer 的自动加载(因为它很困惑)。

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

您可以做的就是定义 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',
        ),
    ),
));

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

从模块的 0.8.* 版本开始,由于最近 doctrine/common 的拆分方式,依赖关系将增加相当多,因此请考虑寻找解决方案开始使用 Composer ,否则你只会在未来拖延巨大的问题。

此解决方案目前应该有效。

关于php - ZF2+无 Composer 主义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14979381/

相关文章:

javascript - 如何使用 javascript 取消选中数组中的单选按钮

php - Symfony2 对具有 maxresults 和 firstresult 的查询的错误响应

forms - zend 2 + 学说 2 Hydrator - Hydrator 未对 POST 对象进行水合

php - 使用 BINARY 查询 ZF2 模型

cookies - Cookie 仍设置在 HTTP 上,ini_set ('session.cookie_secure' ,1);

php - 在 PHP 中查找上个月的最后一天

PHP:我的方法可以吗?

symfony - Doctrine Sluggable - 列 'slug' 不能为空

postgresql - 使用 Doctrine2 和 PostgreSQL 的多数据库架构和迁移

select - 如何扩展 Zend\Db\Sql\Select?