Объяснение в этой части РФ C: Почему бы не продлить Do c Комментарии? объясняет множество преимуществ
- Пространство имен предотвращает конфликты между различными библиотеки, использующие тот же тег do c comment
- Проверка наличия атрибута - это проверка ключа O (1) ha sh по сравнению с непредсказуемой производительностью strstr или даже анализом docblock.
- Mapping Атрибуты к классам обеспечивают правильную типизацию атрибутов, уменьшая основной источник ошибок, зависящих от docblocks во время выполнения.
- Существует заметный спрос на что-то вроде аннотаций, основанное на его общем использовании в очень многих различных инструментах и сообществах. Тем не менее, это всегда будет запутанным для новичков, чтобы увидеть в комментариях. Кроме того, разница между / * и / ** все еще является очень тонким источником ошибок.
Многие из них сводятся к тому, что атрибуты могут быть проверены с помощью PHP. Инструменты могут использовать тот факт, что эти атрибуты - это уже проанализированные метаданные, видимые с отражением, а не комментарии, которые необходимо анализировать с помощью специального синтаксиса для каждого инструмента. Среды IDE и инструменты анализа stati c смогут гарантировать правильность, не зная синтаксиса аннотации docblock конкретного инструмента c, поскольку атрибуты разрешают классы, которые должны существовать, и могут иметь дополнительные аннотации типов для добавления проверки.
Итак:
- инструменты, определяющие используемые ими атрибуты, выиграют от корректности и прироста производительности, поскольку PHP будет обрабатывать эти атрибуты для них
- инструменты, которые анализируют PHP получат преимущества от более простых гарантий проверки типов и стандартов проверки правильности атрибутов
- люди получат преимущества от улучшений этих инструментов и того факта, что документация и метаданные могут быть лучше разделены