On Thu, June 18, 2020 at 8:40 AM Mark Randall wrote: > On 18/06/2020 00:59, Theodore Brown wrote: > > I've opened voting on the Shorter Attribute Syntax RFC: > > https://wiki.php.net/rfc/shorter_attribute_syntax > > I'd be wary of @@ simply because if we do add validation to them, > we would likely want to use the suppression operator to indicate > that a class might be omitted (such as if an optional package is > not installed). > > At which point we're left with @@@ and that's getting into silly-land.
Hi Mark, Attributes were already designed to be optional, though, so there's no need to suppress anything. Attribute validation occurs when you call `ReflectionAttribute::newInstance()`. Or are you suggesting that we reverse the way this works, and always validate attributes unless a suppression operator is used? I'm not convinced this is a good idea - it would require adding a suppression operator for all the use cases where attribute information is collected without an attribute class, which changes something that should be an internal implementation detail to require different syntax for end-users of a library. Also, it could be confusing if the suppression operator only prevents autoloading, but doesn't suppress other warnings. And if it does suppress other warnings, that would probably not be what developers want in most cases. Lastly, in my personal opinion combining the suppression operator with attribute declarations looks like even worse symbol soup with with the other syntax options. :) Best regards, Theodore -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php