Да, действительно, аннотации не являются частью самого языка.Но они также не являются частью платформы Symfony.
Аннотации обычно обрабатываются пакетом doctrine/annotations
(чаще всего).Он использует отражение, чтобы читать и анализировать эти комментарии и преобразовывать их в объекты аннотаций ( у каждой аннотации есть класс аннотации , который он представляет).Затем дело до библиотеки, чтобы использовать сгенерированные объекты, представляющие эти аннотации.
Итак, чтобы ответить на первый вопрос - да, есть препроцессор.Но он не «создает новые сущности php», потому что это работа для библиотеки, которая использует эти аннотации (например, Symfony framework или Doctrine ORM).
То, как это влияет на производительность, зависит от библиотеки, которая используетих.Если они будут анализироваться при каждом запросе, это действительно повлияет на производительность.Например, Symfony и Doctrine ORM кэшируют эти данные или создают прокси-классы и т. Д.
Таким образом, ответ на второй вопрос - возможно, если он используется неправильно, но обычно это не так (в производственной среде), поскольку они просто неанализируется каждый раз.
Последний вопрос на самом деле не относится к аннотациям.Поскольку аннотации на самом деле являются классами, причина их использования в именах также одинакова.Чтобы избежать конфликтов между библиотеками и ради удобства чтения.