OOP mit PHP5 - Einstiegstutorial 2 - Fehlerbehandlung
1. Die Abschnitte
- Fehlerbehandlung
- Die Vollpfosten-Exception
- Die Daten-Exception
- Eine Variante
- Typprüfung
- Erläuterungen
2. Das Ziel
In unserem ersten Tutorial haben wir zugegebenermaßen sehr schlampig programmiert und keinerlei Vorkehrungen für mögliche Fehlerquellen getroffen. Das wollen wir nun nachholen. Dabei werde ich euch zuerst zeigen, wie man mit Exceptions arbeitet und anschließend kommt noch ein Beispiel zur Typprüfung.
3. error_reporting
Das stellen wir diesmal aus didaktischen Gründen nur auf E_ERROR
. Das ist zwar nicht die feine englische Art,
aber wir machen es ausnahmsweise mal so. Falls jetzt einer fragt "Hä?", erst mal ab zu den
Grundlagen.
4. Überlegungen
Zuerst geht man auf die Suche nach möglichen Fehlerquellen, analysiert diese und stellt dann folgende Fragen:
- Welche Fehler sind schwerwiegend?
- Welche sind es nicht?
Im Falle unserer Dir.class.php
kämen wir zum Beispiel zu folgendem ersten Ergebnis. Es gibt besonders schwere
und idiotische Fehler von Seiten des Benutzers unserer Klasse, und es gibt nicht so schwerwiegende, für die er nichts kann.
Diese teilen sich dann so auf.
Schwerwiegende Fehler
- Angabe eines nicht existenten Startverzeichnisses
- Es gibt keine Leserechte für die jeweiligen Verzeichnisse
- Für die Eigenschaften
$deny
und$filetype
wurden keine Arrays angegeben
"Harmlose" Fehler
- Es sind keine entsprechenden Dateien vorhanden
5. Vorbereitung
Nehmt euch nun den fertigen Code aus dem ersten Tutorial und geht
genau so vor, wie dort bei den "Überlegungen" unter Punkt 4 beschrieben ist. Als nächstes setzt ihr das
error_reporting
auf E_ERROR
. Wir werden auch diesmal alles in ein und derselben Datei abarbeiten.
Es geht hier ja nur ums Prinzip, und wie ihr das später aufteilt, zeige ich im nächsten Tutorial.
error_reporting (E_ERROR);
Zugriffsrechte
Diejenigen unter euch, die ein Linux-System ihr Eigen nennen, sollten nun mal in einen der Unterordner die Leserechte so weit einschränken, das öffentliche Leserechte verboten werden. Dazu müsst ihr eine Shell (Bash, Putty, etc) aufrufen und folgenden Befehl eingeben.
chmod 640 /pfad/zum/ordner -R
Das /pfad/zum/ordner
müsst ihr natürlich entsprechende anpassen. Wie das mit der Einschränkung unter Windows
funktioniert kann ich leider nicht sagen, da ich bisher immer nur unter Linux-Systemen entwickelt habe.
Wenn ihr auf dem Webspace eines Providers arbeitet, so könnt ihr die Rechte natürlich auch mit eurem FTP-Programm ändern.
Ein HInweis
Bevor ihr euch an den Abschnitt über die Daten-Exception heranwagt, müsst ihr die Rechte natürlich wieder ändern. Und zwar
auf 555
(reicht bei mir) oder im Zweifelsfall auf 777
.