Doctrine 2 ClassMetadata с пользовательскими аннотациями - PullRequest
2 голосов
/ 20 февраля 2011

Я пытаюсь закодировать процесс создания объектов Zend_Form с использованием Doctrine2 ClassMetadatas, чтобы упростить создание форм для моего клиентского приложения базы данных.

Мне нужно было где-то хранить метки элементов, описания и т. Д., Используя пользовательские теги phpdoc. Но кажется, что ClassMetadataInfo не предоставляет «аннотации» за пределами того, что он ожидает.

Думаю, это разумно, но я изо всех сил пытаюсь найти способ разобрать весь блок phpdoc.

Я смотрел на использование getReflectionClass () и его синтаксический анализ сам, но у меня не хватает отличного кэширования. Парсер Doctrine2 работает очень хорошо для того, что он делает, но я не могу сделать из этого ни головы, ни хвоста!

Возможность использовать phpdoc краткое описание в качестве метки элемента и длинное описание в качестве описания было бы очень удобно для моей формы <> дружеских отношений с моделью.

Кто-нибудь еще задумывался об этом?

Ответы [ 2 ]

3 голосов
/ 12 июля 2011

В случае, если кто-нибудь найдет этот ответ: последняя версия Doctrine на данный момент включает в себя более продвинутую программу чтения аннотаций, включая механизмы кэширования (которые вы, вероятно, хотите). Взгляните на документацию доктрины , чтобы найти несколько хороших примеров использования.

3 голосов
/ 20 февраля 2011

Dotrine2 предоставляет как AnnotationDriver (который используется ORM), так и AnnotationReader (используется драйвером и предоставляет более абстрактный метод).

Посмотрите на источник

Doctrine \ ORM \ Mapping \ Driver \ AnnotationDriver

Doctrine \ Common \ AnnotationsReader

...