簡體   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