Re: [RFC Proposal] var keyword deprecation/removal
| From: | Rowan Collins | Date: | Thu, 03 Mar 2016 17:48:25 +0000 |
| Subject: | Re: [RFC Proposal] var keyword deprecation/removal | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-91490@lists.php.net to get a copy of this message | ||
Fleshgrinder wrote on 03/03/2016 17:32:
There's a subtle distinction which I may not have explained very well. What I want is the ability to *selectively* ignore these warnings. For instance, if I write: namespace \Foo\Bar\Baz; class AwesomenessFactory implements ArrayAccess {If there were some way of preventing users writing var in*new* code, Iwould be all for it - there is no advantage to doing so, and it adds no value to have two ways of writing "public". But there is no way for the engine to distinguish new code from "legacy" code which already contains the keyword. If someone can come up with a clean mechanism for doing that (and in particular, for new code to say "I'm including this legacy library which I will replace with modern code shortly, don't bother telling me how many deprecated features it uses"), then I would be very interested. I always thought that E_STRICT is exactly that. I mean, an upgrade path like ...
var $something;} ... then I would be happy to see a notice that I'd used the wrong keyword. But if I write: # TODO Replace dependency with modern equivalent include 'Ancient/PEAR/Library.php'; ... then I don't want to see 500 notices that the library I'm about to replace has old-fashioned code in it. The same is true if I am actually maintaining the included library, and have a rewrite in the works which I am confident will supersede the current stable version long before the next major version of PHP. It's not about whether those notices are there for 6 years or 9 years, or which E_* constant they appear under, it's about granularity of which ones shout at me. Regards, -- Rowan Collins [IMSoP]