Аннотации PHP: дополнение или аннотация доктрины?

Можете ли вы назвать мне причину, по которой один лучше другого?

Вот мой список на данный момент:

  • Addendum — это проект, посвященный этому
  • Приложение похоже имеет больше функций
  • Addendum API кажется проще в использовании
  • У доктрины больше поддержки и больше вовлеченных людей
  • Doctrine кажется более живым проектом
  • Doctrine полностью совместима с PHP 5.3, в то время как Addendum пытается стать совместимым (см. домашнюю страницу).
  • Аннотации Doctrine можно легко кэшировать

Решение не простое...


person Matthieu Napoli    schedule 09.04.2011    source источник


Ответы (2)


Я полагаю, что лучше использовать компонент Doctrine:

  • I've never heard of Addendum -- while I've heard a lot about Doctrine (and have used it several times)
    • Which means more community and support for Doctrine
  • Doctrine is used by some big Frameworks (symfony ; and can easily be integrated with Zend Framework)
    • Which means chances are higher that you'll already use Doctrine ; and find developers who are familiar with its syntax
  • Maybe less important for you, But some guy from Doctrine's team has done some work on getting Annotations integrated into PHP
    • There is a RFC : Request for Comments: Class Metadata
    • На данный момент не похоже, что это будет интегрировано в PHP, но это означает, что команда Doctrine проделала работу, которая показывает, что у их решения есть некоторые размышления.
person Pascal MARTIN    schedule 09.04.2011

Чего это стоит...

Я использую Addendum уже год и считаю его до смешного простым в использовании. Его расширение для PHP Reflection API бесшовное и поддерживает гораздо больше вариантов использования, чем компонент Doctrine Annotations.

В нем отсутствует поддержка пространств имен, но я мог исправить класс AnnotationMatcher, чтобы он принимал классы с пространствами имен (без получения ложных совпадений из тегов docblock), и он работал как шарм.

Аннотации Doctrine учитывают операторы использования PHP 5.3. Это единственное, что Addendum не делает, и IMO это было бы не так просто реализовать.

person Leonardo Rothe    schedule 26.11.2011