Beim Optimieren einiger Funktionen von bitEvolution bin ich heute ziemlich nah an einer Katastrophe verbeigeschlittert. Ich habe durch einen dummen Fehler sämtliche PHP-Skripte gelöscht.
Zuerst konnte ich es nicht glauben, das alle meine Dateien verschwunden waren. Stück für Stück wurde aber deutlich, dass sie tatsächlich unwiederruflich gelöscht wurden. Die Panik später allmählich, da mir klar wurde, dass ich noch über Sicherheitskopien verfüge. Dennoch starte ich lange Zeit auf das zuletzt geänderte Skript, welches die Katastrophe ausgelöst hatte. Nicht nur auf den ersten Blick schien es richtig zu sein. Ich hatte nur ein paar Bestandteile zusammengefasst und zwei sich wiederholende Schritte in eine Funktion gepackt. Das Skript sollte eine Datensicherung durchführen, vorher aber alle Daten im Zielort löschen um zu gewährleisten, dass keine Dateien im Backup enthalten sind, die es im Originalordner nicht mehr gibt. Die Dateipfade hatte ich in einer Variable angelegt, was bis zu Umstellung auch wunderbar funktioniert. Bei der Umstellung hatte ich aber nicht berücksichtigt, dass die Variablen in der entsprechenden Funktion, die die Dateien löscht, keinen Wert mehr – sie war keine globale Variable! Somit wurde direkt das Stammverzeichnis gelöscht, in dem sich das Skript befand. Hoffentlich denke ich beim nächste Mal daran, globale Variablen auch als solche zu deklarieren.