ID: 14538
Updated by: zeev
Reported By: [EMAIL PROTECTED]
Old Status: Open
Status: Closed
Bug Type: Unknown/Other Function
Operating System: Any
PHP Version: 4.1.0
New Comment:

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 :)


Previous Comments:
------------------------------------------------------------------------

[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


-- 
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]

Reply via email to