Я пытаюсь запустить JMSSerializer. Мой простой кодОшибка загрузки аннотации Doctrine
use JMS\Serializer\Annotation\Type;
class Comment
{
private $msg;
public function __construct($msg)
{
$this->msg = $msg;
}
}
class Person
{
/**
* @Type("array<Comment>")
*/
private $commentList;
public function addComment(Comment $comment)
{
$this->commentList[] = $comment;
}
}
$type = new Type;
$serializer = JMS\Serializer\SerializerBuilder::create()->build();
$data = new Person();
$data->addComment(new Comment('hey'));
var_dump($serializer->serialize($data, 'json'));
терпит неудачу с
PHP Fatal error: Uncaught exception 'Doctrine\Common\Annotations\AnnotationException' with message '[Semantical Error] The annotation "@JMS\Serializer\Annotation\Type" in property Person::$commentList does not exist, or could not be auto-loaded.' in xxx.php:52
ОК, но если добавить строку
$type = new Type;
для запуска автозагрузчик вручную, он работает:
string(32) "{"comment_list":[{"msg":"hey"}]}"
В I в AnnotationRegistry не используется автозагрузчик, это три чтобы использовать собственный автозагрузчик. Это выглядит уродливо, что мне нужно сделать, чтобы исправить это?
Возможный дубликат [JMSSerializer stand alone - Аннотации не существует или не могут быть загружены автоматически] (http://stackoverflow.com/questions/14629137/jmsserializer-stand-alone-annotation-does-not-exist- или-не-быть автоматически загружены) –