Re: [PHP4BETA] changing all "php3" to "php4" ?
| From: | Zeev Suraski | Date: | Thu, 27 May 1999 20:04:42 +0000 |
| Subject: | Re: [PHP4BETA] changing all "php3" to "php4" ? | ||
| References: | 1 | Groups: | php.version4 |
| Request: | Send a blank email to php-version4+get-1138@lists.php.net to get a copy of this message | ||
At 20:08 27/05/99 , Rasmus Lerdorf wrote:
First, there isn't any point in supporting both versions since PHP4 is downwards compatible with PHP3. Before anybody comes back saying 'no way, it's not', my answer is that we'll release it only when this sentence is true. That's the whole point about PHP4, and the fact that you can't run both versions concurrently would sort of prove that point. Well, there will be a transition phase. PHP4 is not going to be 100% backward compatible. We have already identified things that just won't be fixed. And second, PHP3 is stable. It will be a while before PHP4 is. The lack of a transition phase where you don't have to bet the farm on PHP4 will slow down the migration to PHP4. If it really is such a big job to make them run concurrently, the transistion phase will have to be done through cgi.The whole point of the beta period is that the transition phase will be nullified. As someone that has a lot of experience with testing PHP3 web sites with PHP4, I truly don't agree with you. Sure, we've recognized one thing that doesn't work with PHP4 and does work with PHP3, but it's extremely rare and makes no sense (which is why we don't support it in Zend). The number of people that will be bitten by it is negligible, and they'll be covered by the changes file that we'll release. Simply put, I don't want to release PHP4 if there's any transition phase required. We'll refine it until it's not necessary. If people would still want it, they could do it using CGI. Just to make it clear, it doesn't even remotely resemble the situation with php/fi2 and php3, as I'm sure you realize. I don't want to make people get the impression that it is in fact similar and that they need to slowly migrate, instead of just upgrade.
Second, you can't do it. There are functions with no php3_ prefix that have changed (for example, getParameters(); there are many more) and it won't work anyway, as only one version will get linked. Since I don't consider it a good thing to run both versions concurrently, I don't want to even try sorting that problem out. What do you mean only one version will get linked? Both PHP3 and PHP4 compile as DSO's. If it weren't for a couple of symbol clashes, both could easily be loaded concurrently.What do you mean symbol clashes? I can't seem to understand how a clash between getParameters() from PHP3 and getParameters() from PHP4 can be solved easily, whereas a clash between some php3_ function in PHP3 and PHP4 cannot be solved. As far as I can tell, if it doesn't work as a DSO as it is now, it won't work anyway. And if it does, there's no point doing more work on it, since it won't work as a static compile anyway. Anyway, hardly anybody uses them as DSOs. Ok, not hardly anybody, but most people don't. They'll probably have a harder time getting DSOs to work, than getting PHP4 to work with all of their scripts, which typically, would require no work.
And besides, none of this is a reason not to change "php3" strings to "php4" throughout the code even if it isn't for concurrency reasons.That's actually an intentional issue. I don't want these functions to be php4_*() either. You can divide the php3_ functions to two groups: 1. Functions that are now really zend_* functions and remained php3_* through macros for easy migration. If we change their names, we'd simply rename them to zend_*. 2. Other functions, that don't really need to have the version number stamped on them anyway. Renaming the functions appropriately (e.g., instead of _php3_add_slashes(), phpi_add_slashes()) is a gradual process. Zeev -- Zeev Suraski <zeev@zend.com> http://www.zend.com/ For a PGP public key, finger bourbon@netvision.net.il -- PHP 4 Beta