Hello, I thought that this thread was over. Anyway, I finally made time to ban the functions that you broke from my site code. Since it gave me a lot of work and I feel that others could also benefit of the workarounds functions that I had to develop, I have just released a a class and some wrapper functions that provide the original behaviour of the broken functions.
The class is available here: http://phpclasses.UpperDesign.com/browse.html/package/404 . Downloading the class code does not require you to be subscribed. Later I will make a more complete announcement for those that are not subscribed to the PHP Classes Repository site. Zeev Suraski wrote: > > At 03:43 16/12/2001, Manuel Lemos wrote: > >So, there why keep giving more reasons to not upgrade? > > Because sometimes it's necessary. The way dirname() behaved was buggy and > unintended - it simply did not do what it was supposed to do. Perhaps Yes, but people where relying on the original behaviour. For instance, if you have a reloctable script and want to figure a sub-directory where you may have the graphic image files, you would use something like dirname(GetEnv("SCRIPT_NAME"))."/graphics/icon.gif". This stopped working when you broke dirname because if GetEnv("SCRIPT_NAME") is for instance "/index.php", dirname now returns "/" while before it returned "", so the expression above becomes //graphics/icon.gif . dirname never returned a path ending with / and that extra slash makes browsers not download the graphic image files as always breaking the behaviour of a site that is up and running for more than 2 years. > taking it to the extreme - it's kind of like pow(2,2) returning 4.01 > instead of 4. If such a bug existed in pow() and we fixed it, we wouldn't > have added an ini switch to turn it on/off. Except that I doubt that anybody would be relying in the behaviour because floating point math is not supposed to be accurate. BTW, I don't know if you are aware but arbitrary precision math functions are useless because it applies to the arguments the number of the decimal places that it should be applying only to results. There is a long standing bug rotten in the bug database waiting for somebody to fix it. You could fix such kinds of bugs to make arbitrary precision extension of any use instead of breaking the behaviour of functions that work as they did for 4 years. > register_globals is completely different. register_globals is a concept > which turned out to be very problematic, but people who bought into it It is always problematic. The difference is that you only realized recently, just like the behaviour of dirname and strtok that you broken. > should be allowed to go on using it. We also have to be a bit realistic > every now and then, and realize that the vast majority of PHP code today, > and we're talking dozens of millions of lines of code, relies on > register_globals being on. That's not true for dirname(). It doesn't mean Says who? Have you counted the number of people that are using dirname or strtok. > that BC breaks that only affect a small number of people should be taken > lightly - but obviously, this plays a significant role. Yeah, that is the same unrespectful conclusion as Rasmus, "it is just Manuel complaining". > >Admit it, you were not aware and not even documented the change that > >Andi made to the behaviour of a function that worked like that for 3 > >years. > > >Sure but they way it seems to me is that reporting the problem did not > >make any difference. So why bother reporting? > > It's your decision. Don't expect the dev-team to treat anything you put in > the bugs database as the 11th commandment. The dirname() example is > relatively unique, because the new behavior is not a problem, but a fixed > behavior which causes incompatibility. Incompatibility with what? Of something that never relied on it because the function never behaved before like the way it behaves when you fixed it? And what about strtok that was broken in November? What incompatibility it causes to whose PHP software? > >I am afraid that a lot of people simply do not bother to report > >problems, even when it affects their businesses, because they just get > >this kind of response and they certainly can use the time they spend > >making a useful report in things that can really result in something > >that the need. > > Don't worry so much. You're the first person to bring up this point in 5 > years :) Because most people don't know yet, as you broke the behaviour of two functions silently and did not document it anywhere! Also, when people will be aware, they as well not bother to tell you, especially if they know you track record of overuling people reports, even when they are made with consistent argumentation. Anyway, I really sorry for you because you have lately shown a very inconsistent attitude towards people that have invested a lot to help you on PHP/Zend development. While in Zend 2 list you have fought very hard people overuling their proposals to evolve PHP/Zend with your argument that it would break backwards compatibility, you come here and say it is ok to break the compatibility of long standing functions that always behaved that way for 4 years before you decided that it was ok to break them because "it was just Manuel" reporting. What credibility has a person that has such inconsistent attitude that nullifies the arguments of some key developers with the backwards compatibility argument, while at the same time you state elsewhere that argument is not that important?! No wonder why such key developers just turn their backs to you giving up attempting to cooperate and help you to improve a product from which you make business. Never mind, soon or later you will realize that your arrogance may be already causing harm to your business. Manuel Lemos -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]