Комментарии 5
Думаю стоит переводить проекты с аннотаций на атрибуты. Сам для этого юзал https://github.com/rectorphp/rector
На совсем легасси, зачасту, используется PHPDriver, такой легасси с php 5.x до 8.x лучше наверное не переводить (если это вообщем возможно)
Если legacy времен php 5 и никакого дальнейшего развития от него не требуется (хотя если в принципе от приложения требуется только поддержка), то да, переводить особо смысла нет )
В наше время уже php 7 считается legacy. В том время пользовались популярностью аннотации. Например, наше приложение стартовало в 2018 с php 7.2, обросло большим количеством кода, а требования с т.з. бизнеса продолжали расти (в том числе по нагрузке). Поэтому оптимизация метадаты оказалась полезным решением - ускорение запросов на 30%, если судить по метрикам. Правда, ускорили мы не за счет атрибутов, а кодогенерации, которую я в статье упомянул. Но думаю в конечном итоге перейдем на атрибуты, чтобы не поддерживать кастом )
Декларация атрибутов начинается с символа решетки и в php <8.0 это равносильно однострочному комментарию.
Поэтому, хоть и без рефлексии, атрибуты можно использовать и на php младших версий при соблюдении некоторых условий (например, не использовать многострочную запись атрибута, не помещать код на ту же строчку).
Распарсить поможет https://github.com/spiral/attributes ^2.0 (php 7.4+)
Атрибуты - бесспорно хорошая вещь, но на производительность в продакшн никак не должно повлиять.
Все метаданные сущностей будут браться из кэша, а аннотации/атрибуты не обрабатываются.
PHP: атрибуты vs аннотации: оптимизируем метадату Doctrine