PHP аннотации: дополнение или аннотация доктрины? - PullRequest
6 голосов
/ 09 апреля 2011

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

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

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

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

Ответы [ 2 ]

9 голосов
/ 09 апреля 2011

Полагаю, я бы предпочел использовать компонент Доктрины:

  • Я никогда не слышал о Дополнении - хотя я много слышал о Доктрине (и использовал его несколько раз)
    • Что означает больше сообщества и поддержки Доктрины
  • Doctrine используется некоторыми крупными Frameworks (symfony; легко интегрируется с Zend Framework)
    • Это означает, что вероятность того, что вы уже используете Doctrine, выше; и найти разработчиков, знакомых с его синтаксисом
  • Возможно, менее важно для вас, но какой-то парень из команды Doctrine проделал определенную работу по интеграции аннотаций в PHP
    • Существует RFC: Запрос комментариев: Метаданные класса
    • Пока что не похоже, что это будет интегрировано в PHP, но это означает, что команда Doctrine проделала работу, которая показывает, что их решение задумано
3 голосов
/ 26 ноября 2011

за что стоит ...

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

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

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

...