RE: [PHP-DEV] [RFC] <<Deprecated>> Attribute

From: Date: Fri, 08 May 2020 19:54:59 +0000
Subject: RE: [PHP-DEV] [RFC] <<Deprecated>> Attribute
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-110092@lists.php.net to get a copy of this message
Hi Benjamin, Thanks for the RFC to bring real cases of attribute into the core. Here are some questions from my side: 1. what's the use case for deprecation against parameters? This feature is really not useful IMO. For example, function test2(<<Deprecated>> $value) {} is not only deprecating the $value parameter, it's deprecating the first parameter. So actually it means we are not recommending to call test2 with any parameter, and it also limits the ability to add more parameters in the future. The real cases I saw is more complex then just deprecate the parameter itself. usually what we deprecated are certain types/values of the parameter, which requires further check. 2. why you propose "for class constants/properties and parameters maybe 8.1" Is there any issue blocking us to get them in 8.0 as well? 3. default message for class functions. // Deprecated: Method Foo::test() is deprecated in %s From my understanding, the %s here is where this method has been called/defined, while other message doesn't include this. I think we might remove it for consistency. 4. message for methods/functions For class property/constant, you clarify when the deprecated message will come up. But for the methods/functions this is missing. I think it would be better if you make it more clear. Thanks, CHU Zhaowei -----Original Message----- From: Benjamin Eberlei <kontakt@beberlei.de> Sent: Thursday, May 7, 2020 3:22 PM To: PHP Internals <internals@lists.php.net> Subject: [PHP-DEV] [RFC] <<Deprecated>> Attribute Hi everyone, The attributes RFC specifically looked into the use of attributes at the engine/compiler level. To have a showcase of this with the 8.0 release I want to propose this RFC for a <<Deprecated>> attribute: https://wiki.php.net/rfc/deprecated_attribute <<Deprecated>> is the most obvious engine attribute to add at the beginning in my opinion, as - all other languages with Attributes/Annotations support have it as well - its effects are quite obvious to understand, as such offer a good example and intro to attributes - with potential property/class constant deprecation it adds something that was not possible in userland before. Let me know what you think! greetings Benjamin

« previous php.internals (#110092) next »