【问题标题】:Issue installing Doctrine ORM Module on ZF2 RC2在 ZF2 RC2 上安装 Doctrine ORM 模块时出现问题
【发布时间】:2012-08-01 06:14:35
【问题描述】:

我正在尝试将 DoctrineORMModule 模块与 ZF2 RC2 集成,但我遇到了问题。我的./composer.json 如下,php composer.phar update 运行良好:

"require": {
    "php": ">=5.3.3",
    "doctrine/data-fixtures": "dev-master",
    "doctrine/doctrine-module": "dev-master",
    "doctrine/orm": ">2.2,<2.4-dev",
    "doctrine/dbal": ">2.2,<2.4-dev",
    "doctrine/migrations": "dev-master",
    "zendframework/zendframework": "dev-master#a59928a3a37e420193939f9799ece27fb39bb84e"
},
"autoload": {
    "psr-0": {
        "DoctrineORMModule": "src/",
        "DoctrineORMModuleTest": "tests/"
    }
}

但是添加到 ./application/application.config.php 的模块之一导致问题:

'modules' => array(
    'Application',
    'DoctrineModule',    // WORKS FINE
    'DoctrineORMModule', // 'Module (DoctrineORMModule) could not be initialized.'
),

这在我发出./vendor/bin/doctrine-module 命令时得到确认:

PHP 致命错误:未捕获的异常 带有消息“模块”的“Zend\ModuleManager\Exception\RuntimeException” (DoctrineORMModule) 无法初始化。在 ./vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:139

如果我在 vendor 目录中搜索 Doctrine 命名空间,我可以找到 DoctrineModule 的命名空间(grep "namespace DoctrineModule" -R ./vendor 找到东西),但找不到 DoctrineORMModulegrep "namespace DoctrineORMModule" -R ./vendor 没有)。

为了将DoctrineORMModuleZF2 RC2 集成,我缺少什么?

【问题讨论】:

标签: zend-framework doctrine-orm zend-framework2


【解决方案1】:

你忘了 require "doctrine/doctrine-orm-module"

DoctrineModule 包含一堆抽象类,为 ORM/MongoDB 和其他数据库提供相同的 API。

在此处阅读有关安装 DoctrineORMModule 的更多信息 https://github.com/doctrine/DoctrineORMModule

【讨论】:

  • 是的,很遗憾,我忘了要求文档中记录为必需的唯一模块 (github.com/doctrine/DoctrineORMModule)。我试图否决我的问题,但不能:) 无论如何,干杯!
  • 不要对你的问题投反对票,那只是愚蠢的,我相信其他人会犯这个错误:-P 我知道我自己做了类似的事情
【解决方案2】:

我想你只需要添加

"doctrine/DoctrineORMModule": "dev-master"

喜欢这个

{
    "name": "zendframework/skeleton-application",
    "description": "Skeleton Application for ZF2",
    "license": "BSD-3-Clause",
    "keywords": [
        "framework",
        "zf2"
    ],
    "homepage": "http://framework.zend.com/",
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "dev-master#a59928a3a37e420193939f9799ece27fb39bb84e",
        "doctrine/DoctrineORMModule" : "dev-master"
    }
}

然后运行

php composer.phar 更新

【讨论】:

  • 这是我最初尝试的,但"doctrine/DoctrineORMModule" 已过时,已被"doctrine/doctrine-orm-module" 取代。
  • 过时的原因是 composer 不再接受大写字母的名字了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 2012-06-05
  • 1970-01-01
  • 2019-05-27
  • 2016-11-05
  • 2020-10-14
相关资源
最近更新 更多