Как стать автором
Обновить

Комментарии 5

На совсем легасси, зачасту, используется 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+)

Атрибуты - бесспорно хорошая вещь, но на производительность в продакшн никак не должно повлиять.
Все метаданные сущностей будут браться из кэша, а аннотации/атрибуты не обрабатываются.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории