【问题标题】:zend framework 2 projects conflictZend 框架 2 项目冲突
【发布时间】:2016-01-28 18:19:27
【问题描述】:

我有一个家庭服务器,它有 2 个站点 zf2 加上这样的结构:var/www/site1 和 var/www/site2 我认为我与命名空间有冲突。在我收到的两个项目之一(site1)中:

Fatal error: Cannot redeclare class Doctrine\Common\Annotations\Annotation\Target in /var/www/site2/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php on line 31

我应该怎么做才能不尝试从其他项目加载类? 坦克你。

【问题讨论】:

  • 我不认为它与命名空间有关。应该是项目中set-up/autoload/bootstrap的问题。看看你的类图,你的自动加载文件等。可能如果你复制/粘贴项目,你有任何配置文件或供应商/自动加载器内的任何东西,指向旧项目中的学说,还有一些其他指向新教义

标签: zend-framework2


【解决方案1】:

所以过了一会儿,我弄清楚这是怎么回事,是来自 php 的 opcache,一旦我禁用所有 zf2 项目就会顺利进行。我不知道如何调整以使用 opcache enable

【讨论】:

  • 您可以逐个项目禁用 opcache,方法是在 .htaccess 文件中使用 php_flag opcache.enable Off。只是为了确认,这确实是我的案例中 Doctrine redeclare class 错误的根本原因。
【解决方案2】:

此错误表示您将类 Doctrine\Common\Annotations\Annotation\Target 包含了两次。很难说你是怎么做到的。

Zend Framework 2 使用自动加载,所以这种类型的错误通常是不可能的。要安装 Doctrine,您使用 Composer 依赖管理器,它会为您创建所有自动加载配置。但是,如果您随后将 Composer 生成的代码复制并粘贴到另一个项目中,您可能会遇到类似的问题。

【讨论】:

    【解决方案3】:

    问题来自主机文件,一个站点到 127.0.0.1,另一个到 192.168.10.20 我更改并且一切正常

    【讨论】:

    • 你能不能给我们更多的细节。我也有同样的问题!
    • 看看我的新答案,看看它是否也解决了你的问题
    猜你喜欢
    • 1970-01-01
    • 2014-09-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多