Mir ist bei meinem System etwas aufgefallen, dass ich bisher noch nie bemerkt habe (dieses Problem ist von Redaxo völlig unabhängig): die Konstante __FILE__ ändert nach Datei-/Verzeichnisumbenennung nicht ihren Inhalt.
Ein ganz einfacher Test.
In einer Datei gibt es nur folgende Zeile:
Code: Alles auswählen
var_dump(__FILE__);
Wird sie im Browser aufgerufen sieht das Ergebnis so aus
Jetzt ändere ich den Dateinamen in test2.php. Das Ergebnis ist nunstring '/test/test1.php' (length=16)
Es steht weiterhin test1.php da, obwohl es eigentlich test2.php sein müsste.string '/test/test1.php' (length=16)
Egal was ich nun wie oft ändere, ob Verzeichnis oder Dateiname, der ausgegebene Pfad ist immer /test/test1.php. Erst wenn ich die Datei öffne und auch ohne etwas darin zu änderen wieder speichere, erst dann wird die Dateinamensänderung korrekt ausgegeben.
Dies betrifft aber nur die Ausgabe über den Browser.
Der gleiche Test mit PHP-CLI liefert immer ein korrektes Ergebnis.
Hat jemand eine Erklärung für dieses Verhalten? Ich weiß grad nicht, wo ich noch nach der Ursache suchen könnte.
Im PHP-Bugtracker bin ich dazu noch nicht fündig geworden.
Mein System:
PHP 5.2.6-1+lenny8 with Suhosin-Patch 0.9.6.2 (cli) (built: Mar 14 2010 08:14:04)
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with Xdebug v2.0.3, Copyright (c) 2002-2007, by Derick Rethans
with Suhosin v0.9.31, Copyright (c) 2007-2010, by SektionEins GmbH
Server version: Apache/2.2.9 (Debian)