config.php und Config.php sind unter Windows eine Datei
- Matt
In einem PHP-Projekt gab es eine Klasse Config in Config.php. Für lokale Einstellungen wollte ich daneben eine config.php anlegen, die nur ein Array zurückgibt. Unter Linux sind das zwei Dateien. Unter Windows ist es eine: Das Anlegen von config.php hat Config.php überschrieben, ohne Rückfrage, und plötzlich fehlte die Klasse.
NTFS speichert die Schreibweise zwar, unterscheidet beim Zugriff aber nicht. Git merkt so etwas übrigens auch nicht sofort, weil es mit core.ignorecase=true arbeitet, der Standard auf Windows.
Die Einstellungsdatei heißt jetzt config.local.php, damit ist das Thema erledigt. Man kann die Unterscheidung pro Ordner auch einschalten, fsutil file setCaseSensitiveInfo <ordner> enable, das ist für WSL gedacht.
Der Haken dabei: Viele Windows-Werkzeuge rechnen nicht damit und verhalten sich in solchen Ordnern merkwürdig. Für ein Projekt, das auf beiden Systemen laufen soll, sind Dateinamen, die sich nur in der Schreibweise unterscheiden, schlicht keine gute Idee. Details zur Einstellung beschreibt Microsoft unter Case sensitivity.