Php 访问未声明的静态属性:条令\ODM\MongoDB\Mapping\Driver\AnnotationDriver::

Php 访问未声明的静态属性:条令\ODM\MongoDB\Mapping\Driver\AnnotationDriver::,php,doctrine,mongodb,Php,Doctrine,Mongodb,我在所有为其定义了@ODM\UniqueIndex、@ODM\InheritanceType、@ODM\DiscriminatorField等字段的文档中都面临着这个关键问题。基本上,如果该类除了@ODM\Document注释之外还有其他注释,则在尝试使用DocumentManager检索文档时会出现以下错误: 出于某种原因,它试图访问带有奇怪字符(如$D7)的静态属性�等等,发生了什么事?有谁能帮我解决这个问题,因为我们的项目因此遇到了障碍。正在使用ODM的最新主分支 注意:只有启用APC时才

我在所有为其定义了@ODM\UniqueIndex、@ODM\InheritanceType、@ODM\DiscriminatorField等字段的文档中都面临着这个关键问题。基本上,如果该类除了@ODM\Document注释之外还有其他注释,则在尝试使用DocumentManager检索文档时会出现以下错误:

出于某种原因,它试图访问带有奇怪字符(如$D7)的静态属性�等等,发生了什么事?有谁能帮我解决这个问题,因为我们的项目因此遇到了障碍。正在使用ODM的最新主分支

注意:只有启用APC时才会引发此异常。如果我禁用APC并重新启动apache,它就可以正常工作。此外,当启用APC时,它在第一次加载时工作,但在每个连续请求中都失败。(估计这是因为APC操作码缓存仅在第一次请求后才填充)

错误 代码 文件代码
这是APC 3.1.3p1的一个bug。我升级到3.1.9版,现在已经解决了


希望这能为将来可能遇到它的其他人节省一些时间。不要使用debian/ubuntu存储库中的APC包。改用PECL版本。

这是APC 3.1.3p1的一个缺陷。我升级到3.1.9版,现在已经解决了

希望这能为将来可能遇到它的其他人节省一些时间。不要使用debian/ubuntu存储库中的APC包。改用PECL

Fatal error: Access to undeclared static property: Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver::$�S in /home/dayson/projects/www/textme/ninja/library/Doctrine/ODM/MongoDB/Mapping/Driver/AnnotationDriver.php on line 146

Call Stack
#   Time    Memory  Function    Location
.....
6   0.0037  1319032 Doctrine\ODM\MongoDB\DocumentManager->find( )   ../Test.php:34
7   0.0038  1322736 Doctrine\ODM\MongoDB\DocumentManager->getRepository( )  ../DocumentManager.php:574
8   0.0038  1322736 Doctrine\ODM\MongoDB\DocumentManager->getClassMetadata( )   ../DocumentManager.php:474
9   0.0038  1322736 Doctrine\ODM\MongoDB\Mapping\ClassMetadataFactory->getMetadataFor( )    ../DocumentManager.php:273
10  0.0038  1322736 Doctrine\ODM\MongoDB\Mapping\ClassMetadataFactory->loadMetadata( )  ../ClassMetadataFactory.php:180
11  0.0050  1495432 Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver->loadMetadataForClass( )   ../ClassMetadataFactory.php:243
$dm->find('Document\User', '4e283aabc2749a4b7d0001dd')
<?php
namespace Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;

/**
 * @ODM\Document
 * @ODM\UniqueIndex(keys={"mobile"="asc"})
 */
class User extends \Document\AbstractDocument
{
    /**
     * @var string
     * @ODM\Id
     */
    protected $id;

    /**
     * @var string
     * @ODM\String
     */
    protected $mobile;

}