Doctrine Common を使用して独自の注釈を作成しようとしています。http://docs.doctrine-project.org/projects/doctrine-common/en/latest/reference/annotations.htmlはhttps://github.com/doctrine/commonと. Call to undefined method Doctrine\\Common\\Annotations\\AnnotationReader::setDefaultAnnotationNamespace
_ PHP Fatal error: Call to undefined method Doctrine\\Common\\Annotations\\AnnotationRegistry::registerAnnotationNamespace
ソースを確認しましたが、それらはありません。git log によると、それらは 1 年前に削除されました。
PSR-0 オートローダを (Symfony から) 使用しています。だから私はPSR-0ローダーが期待するファイルを持っています:
namespace My\Test;
/**
* @Annotation
*/
class Foo {
}
別のクラス
namespace My\Annotated
/**
* @My\Test\Foo
*/
class Test {
}
読者:
namespace My\Reader
use ReflectionClass;
use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\Common\Annotations\AnnotationRegistry;
use My\Test\Foo;
$reader = new AnnotationReader();
$reflectionClass = new ReflectionClass('My\\Annotated\\Test');
$classAnnotations = $reader->getClassAnnotations($reflectionClass);
var_dump($classAnnotations);
Gets:"[Semantical Error] The annotation "@My\\Test\\Foo" in class My\\Annotated\\test was never imported. Did you maybe forget to add a "use" statement for this annotation?"
私はおそらくそうしましたが、私の人生では、どこに追加すればよいかわかりません. そして、可能であれば @Foo だけを使いたいと思っています。