繁体   English   中英

教义注释失败

[英]Doctrine Annotation failing

目前,我正在尝试在Silex应用程序中实现Doctrine CouchDB捆绑软件。 有一点整个站点以我本地开发堆栈中的500/internal server error结束。 到目前为止,设置断点并使用XDebug和PHPStorm调试它们并没有带来任何结果。 Apache错误日志为空,PHP错误日志也为空, error_reporting(-1); 仍然没有给出任何输出。 可能的问题是那里的反射类用法。

一切工作正常, 直到我尝试使用CouchDB Annotations

use Doctrine\ODM\CouchDB\Mapping\Annotations as CouchDB;

并在我的文档中使用它们

/** @CouchDB\Document */
class Station
{
    /**
     * @Index
     * @Id
     */
    private $id;

如果删除上面的CouchDB\\ ,一切正常。 但是,如果我删除它,并使用@Id(strategy="ASSIGNED") ,则会遇到完全相同的问题。

我尝试通过几种方式来注册注释,但没有运气。 @Ocramius在聊天中建议我应该简单地重写Autoloader,这样可以很好地解决其他问题,但不适用于这种情况(如果有人需要,可以在此处添加它)。

AnnotationRegistry::registerLoader( function( $className ) {
    return class_exists( $className );
} );

尝试使用

/**
* @CouchDB\Index
* @CouchDB\Id
*/

代替

/**
* @Index
* @Id
*/

您还可以通过在运行Silex应用程序之前添加此行来解决此问题(可能在index.php中)。

AnnotationRegistry::registerLoader('class_exists');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM