Zeev Suraski wrote:
Even if we forget about the users, and only think about ourselves - unless something drastic happens, we're going to look at supporting 4 major different versions simultaneously - 4.3/4.4, 5.0, 5.1 and 6.0. Is it really such a great idea to start breaking compatibility beyond what we absolutely have to?
I agree that breaking BC is not a binary thing. I also agree that not being academically pure has not prevent PHP from succeeding on quite a large scale. However I think stuff like renaming functions and dropping aliases can be easily countered by a BC lib like PEAR::PHP_Compat (http://pear.php.net/package/PHP_Compat/). There is even a package in PEAR that will determine the necessary includes you will need to make based on your code and your PHP version (http://pear.php.net/package/PHP_CompatInfo/).
Finally to fix stuff like parameter order we also have a tool readily available (with a few minor tweaks to also cover internal functions) which is called runkit (http://pecl.php.net/package/runkit).
Beyond that runkit also gives us sandboxing, which in absence of a proper taint model is a huge step forward in handling data which may come from all sort of distributed sources in larger projects.
As for removing register globals, a simple auto prepend will get you register globals back, same goes for magic quotes. But moving this stuff into userland will force people to take another hard look at their code.
So I think we have all the tools available to make PHP alot cleaner without forcing people to rewrite their code. Since while our mess has not hurt us, I am sure it has not helped us either.
regards, Lukas -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php