
#RFC И снова о синтаксисе атрибутов в PHP 8
https://wiki.php.net/rfc/shorter_attribute_syntax_change
Сначала Benjamin Eberlei подготовил детальный RFC по атрибутам и предложил синтаксис
<<Attribute>>
.Предложение прошло, но позже после споров предложен другой RFC с тремя вариантами синтаксиса на голосовании:
<<>>
, #[]
и @@
.Победил вариант
@@
, видимо, как максимально близкий к тегам PHPDoc и аннотациям в Java. Но автор этого RFC умолчал о проблеме с парсером и о хаке, который он применил, чтоб обойти проблему.И вот теперь Derick Rethans автор Xdebug написал письмо в Internals, что синтаксис
@@
ужасен вот почему:▪️ Конфликт с парсером.
▪️ Большая вероятность проблем с парсингом в будущем.
▪️ Отсутствие символа в конце атрибута (с ним проще искать и проще для инструментов вроде PHPCS).
▪️ Синтаксис не используется ни в одном другом языке.
▪️ Оператор
@
никогда не уйдет из PHP, а значит и атрибуты из @@
не станут @
.По следам этого письма и подготовили новый RFC, который предлагает использовать синтаксис
#[ ]
как в Rust.