Guys, I have been following the thread about error reporting thing and, I think, it is all going off route.
Of course, the ideas John and Marcus working on both are very nice, they seem to make many interested. But PHP's error reporting itself is very limited. So, as often mentioned in past, the whole error reporting logic should be redesigned at some point. PHP5 comes in mind. I will start laying out some my thoughts to hopefully get a discussion towards working on the complete error reporting logic. I had an extensive experience implementing custom errors, so approve or disapprove my ideas. 1. Error message should be ported to multiple languages. Most of the largest app. servers do that - Oracle, for instance has a wonderful one - you specify NLS and all the errors appear in your language. Can't PHP be the same? It can if, every PHP error is completely exported from C code and stored in an XML file. The errors would be then called by passing the error codes as numbers. This will allow: a) Having one XML file per language. Thus, translations can be easily done by dozens of people without having to hassle with core and extensions. b) Documentation Team can edit errors files at any time and, by using XML definitions, add any possible kind of features to it. Something like what Marcus has been doing with docref. We could add other important notices, relevances etc, etc. Possibilities would be infinite. c) Having error codes as well is handy. This can be very helpful for docref - you can provide a link to FAQ with code in GET and help immensely any developer understanding and debugging the error. Few other apps do that and, I think, it could be an enormous jump for usability of PHP. d) Users will be able to alter their custom error codes if needed. This could be helpful in cases when one wants to control the appearance of error messages. e) Any patch (like one proposed by John, for example) or functionality on user's end that requires to recognize or store an error can use error code to point to the specific message. For instance, imagine this: <?php ... // Assume that 225 is the code for "Undefined variable" error // message if(!@$var) { // Assume we have such function that returns us last error code if(last_error_code(225)) { echo "Failed because \$var was undefined"; } else { echo "Failed because \$var is an empty string, zero, null or false"; } } ... ?> Of course, I know that you could use isset() function to work out code below - I simply used it as the simplest example of flexibility a user can have with this methology of coding. f) You might add your own errors by reusing the same logic. For instance: <? // If you don't have error stored in XML, // define it run-time: register_error(346, "Hey, this is what I failed like"); // To use it do simply: trigger_error(E_ERROR, 346); // throws user defined error on screen ?> Or, for instance, one can alter error message per-script in order to have it differently for his case: <? modify_error(225, "Undefined Username"); // instead of just "Undefined Variable" ?> And things like this. Very, very useful for debugging logistics. I believe that there will be the difficulty on dynamically passing values to errors. Sometimes adding %s in messages might not be enough because the words order isn't same in all languages. So, we should be passing "named" values. I have done it once in one of my projects - I can share the code. 2. Error messages can be controlled by locales runtime on multi-language sites. As i mentioned - this framework can be very flexible. These are my ideas. I have been working on error reporting features quite a few times for several clients, but mostly in PHP, where only methodic are useful. I think this (or whatever else that has this result) has to be implemented in PHP from PHP5. It shouldn't break an y existing code, it would be firstly an internal change, but it would definitely scale PHP a lot. I would be happy to work on this if it gets approved Now, throw all your good and bad thoughts into me :) -- Maxim Maletsky [EMAIL PROTECTED] -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php