Re: [RFC] E_DEPRECATED
| From: | Zeev Suraski | Date: | Tue, 24 Oct 2006 05:53:27 +0000 |
| Subject: | Re: [RFC] E_DEPRECATED | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-26217@lists.php.net to get a copy of this message | ||
At 21:08 23/10/2006, Marcus Boerger wrote:
Hello internals, after recent discussions (over the last three months)I finally made up my mind over E_STRICT, deprecation warnings and OOP messages/rules. My idea proposal is to do the following: - Add a new severity E_DEPRECATED - severities are used as follows: . E_DEPRECATED: Some language featre that is likely to go away. Eearlierst+1removal would be two minor versions or one major version later. That is something that gets deprecated in 5.2 can be removed in 5.4.0 or 6.0.0. However both marking it as deprecated as well as removing it would require a consensus on the list.. E_STRICT any rule that reflects common strict standards, like OOP theorythat is considered harmless if not followed. For example the combination 'abstract static' makes no sense in said theory but doesn't put our zend engine in an unstable state. . E_NOTICE or E_WARNING are used for input validations (e.g. domain errors).
- We drop the current standard INI files and provide two new, namely-1 I don't think we should change the names. A bunch of the -recommended changes from the default file have nothing to do with development/production, so differentiating based on that is not accurate. Avoiding renames will also reduce the chance of confusion (no big deal, but even the tiniest changes in such a central piece tend to trigger questions). I personally also don't see a good reason to disable E_WARNING and E_NOTICE (and possibly also E_DEPRECATED) in a production environment - you may still want to log such errors. As long as display_errors is off, it's not a problem except for the performance hit which should be low assuming you don't have too many of them.. php-develop.ini for developing (E_ALL|E_STRICT|E_DEPRECATED). php-production.ini for production (~(E_DEPRECATED|E_NOTICE|E_WARNING)) . E_ALL does not contain E_STRICT or E_DEPRECATED
- We delay 5.2.0 and revisit all errors and change them according to the new model. We also put any change into the upgrading file.+1 Zeev