I really would like have consistency and new error levels as I proposed. It may not be a good idea for 4.2.0, but I think it is good for 4.3.0 or 5.0, if we annouce it early enough.
E_ERROR: Fatal error. E_WARNING: Bug in script. Runtime error should not be ignored. E_NOTICE: Possible bug in script. Runtime error can be ignored. E_DEBUG: Error messages useful for debugging. Errors safe to ignore. E_INFO: Not really a error but just a info. Useful for API change notice, etc. There are only 2300 php_error/zend_error in current source ;) -- Yasuo Ohgaki [EMAIL PROTECTED] wrote: > ID: 14538 > Updated by: mfischer > Reported By: [EMAIL PROTECTED] > Old Status: Closed > Status: Open > Old Bug Type: Unknown/Other Function > Bug Type: Documentation problem > Operating System: Any > PHP Version: 4.1.0 > New Comment: > > Reclassifying as a documentation problem (and reopened). > > Manuel did a good job tracking down when the behaviour of dirname() has changed and >it won't hurt us putting this information into the documentation. > > Previous Comments: > ------------------------------------------------------------------------ > > [2001-12-15 20:19:58] [EMAIL PROTECTED] > > Daniel, > > I don't think you are realizing how serious this is! > > dirname was added to PHP 3.0a3 which was released more than 4 years ago. Until a >year ago it had a behaviour that Andi thought it was not correct, so he fixed it for >PHP 4.0.3 eventually breaking the code of people that did not realize it then because >they don't upgrade PHP on every minor release. > > So, the point is that what he thought was just a fix, was rather a behaviour change >but he really didn't realize it until I reported today. > > I am not proposing a php.ini option. What I am saying is: > > 1) Admit that Andi did not make a wise decision then and so avoid any future >decisions like this. > > 2) Decisions like this break end users code and prevents them from upgrading. > > 3) Everytime a developer faces a decision like this, always provide a backwards >compatible solution to not cause harm to people code base and not hurt their >applications or even their businesses. > > I think PHP developers were wise enough to avoid backwards compatibily problems of >registering global by having a php.ini switch. I don't see why that could be bad for >dirname. I am not even saying that you should always add a php.ini switch, but at >least is a solution that does not leave people out there in the cold. > > > ------------------------------------------------------------------------ > > [2001-12-15 19:50:54] [EMAIL PROTECTED] > > Actually, you both (Zeev and Manuel) are demanding the same thing, in case you >didn't recognize. You both want a high backwards compatibility, but whereas Manuel is >proposing a switch in php.ini for every little thing, Zeev rather prefers to have >this compatibility "out of the box" (i.e. every script should run with the same >behaviour on every PHP installation - which isn't 100% possible, what he accepts). > > providing seperate switches for every little thing would extremely complexify PHP >programming, as you have to take care of every additional switch in PHP, therefore I >agree with Zeev. The best thing would be to never change a language behaviour, but >sometimes it seems to be unavoidable. > > ------------------------------------------------------------------------ > > [2001-12-15 19:06:47] [EMAIL PROTECTED] > > Zeev, > > As always I am trying to be constructive here. > > I am trying to bring the attention to the fact that as in the past, many ISPs did >not upgrade from old PHP versions because they have bad experiences of having their >clients code broken in new PHP versions. In this case, an old PHP version is 4.0.0 >which is the previous major version. > > If you decide to not be sensitive to this point , I am afraid you will be leaving a >lot of people annoyed and loosing business. > > As to the eventual accusation of being unprofessional, I mean that I am afraid that >it will be what other people will think about who made these backward incompatible >changes. > > Forget that I am the person reporting here. I am not relying on that you ever make a >wise decision regarding this. I'll have to make my code work similarly to what you >suggested because I am well aware of the problem, but I am afraid that most people >isn't. > > I was just trying to help you avoid any future problems of credibility and >professionalism before other people that may arise from these backward incompatible >incidents (I am afraid there are more issues than just dirname). > > I am just trying to help here, I regret the fact that my report is just being >discarded as if I never made it to help you release PHP with a more professional >attitude. Anyway, I am used to this systematic "ignore Manuel Lemos" atitude of >yours. So, do whatever you think is best for your business and keep not caring about >me spending time to help you. :-( > > ------------------------------------------------------------------------ > > [2001-12-15 18:47:57] [EMAIL PROTECTED] > > Manuel, > > This behavior is not going to change, and we're not going to introduce a new >headache-causing INI option to toggle this behavior. > > If you really can't fix the code, you can create my_dirname() that wraps around >dirname, and returns "" if the result is "". Then, all you have to do is a >search&replace of dirname -> my_dirname. > > You use this 'threat' of being accused in unprofessionalism a bit too often, in my >humble opinion :) > > > ------------------------------------------------------------------------ > > [2001-12-15 18:41:16] [EMAIL PROTECTED] > > I was trying to test PHP 4.1.0 in a production site that I have that is made of >large code base and realized that dirname original behaviour was broken severely. > > The site exists for more than 2 years and always relied on the behaviour that >dirname("/index.php") would return "" as it has been since PHP 3. > > The site has 4.0.0 and was never upgraded since because I have this policy of not >installing minor versions to avoid spending a lot of time maintaining changes that >are caused by bugs that may have been introduced. > > I investigated and it seems that in PHP 4.0.3, Andi fixed dirname so that >dirname("/index.php") now returns "/" instead of "" as before. > > Although this should have been probably the original behaviour of the function, the >fact is that it wasn't not even in PHP 3 days. > > My site heavily relies on this feature to let scripts realize in which directory >they are relatively to the server document root using dirname(GetEnv("SCRIPT_NAME")) >. So, my site is seriously broken because I use this everywhere in the site. > > I talked with Andi and he is not willing to restore the original behaviour because >the fix was done more than 1 year ago. > > So, I propose that some option be added to php.ini that lets developers restore the >original behaviour so that their sites don't break because of this change. > > I also would like to recommend PHP developers to take more care when making these >changes that break the existing PHP code base of PHP users because many ISP are >refusing to upgrade to more recent versions because it breaks their clients PHP code >and they would be loosing business if they would upgrade to a newer version. > > Please consider this proposal carefully to avoid being accused of unprofessionalism >of not assuring backwards compatibility of PHP functions behaviour. > > ------------------------------------------------------------------------ > > > > Edit this bug report at http://bugs.php.net/?id=14538&edit=1 > > -- Yasuo Ohgaki -- 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]