wofür brauche ich die beiden Zeilen?? wenn $fatal sowieso auf true gesetzt wird und DEBUG nie geändert wird??
** Zunächst einmal: **
* Wenn Du in einer größeren Firma entwickelst, dann gibt es dort Vorschriften wie das Errorhandling zu bewerkstelligen ist. Genau so ist es gut, wenn Du solche Vorgehensweisen auch für Deine Projekte "standardisierst". Das spart Mühe und Arbeit.
* Die Behandlung von Fehlern könnte man in einem eigenen Buch(!) halbwegs vollständig darstellen, ein Forumsbeitrag ist dafür nicht das geeignete Medium, denn hier muss man bei komplexen Themen notgedrungen verkürzen.
Ich hatte nicht ganz grundlos darauf hingewiesen, dass die Fehlerbehandlung selbst in eine eigene Funktion ausgelagert werden soll. Du kannst den Fehler dort ausgeben und/oder loggen und/oder mailen und/oder sogar automatisch einem Ticket-System übergeben, welches dann weiter regiert. Und/Oder was Dir sonst noch einfällt.
** Die Konstante DEBUG **
... setzt Du auf false, sobald Du das Skript vom Entwicklungssystem auf den Arbeitsserver (Worker) überträgst. Diese ändert sich im Programmablauf nicht. Abseits des verkürzten Beispiels wird DEBUG am besten in einer Initialisierungsdatei für das gesamte Projekt bestimmt oder auf Grund anderer Eigenschaften des Servers (Worker) einmalig festgelegt.
z.B, wenn Dein Worker auf der Domain "tolleWebseite.de" hockt, Dein Entwicklungssystem aber nicht:
if ( false === (strpos('tolleWebseite.de', $_SERVER['HTTP_HOST']) ) {
define (DEBUG, true);
} else {
define (DEBUG, false);
}
Du kannst auch andere Eigenschaften nutzen, ein Blick in die Ausgaben von phpinfo(
) ist sicher hilfreich. Das spart die Änderung der Datei und schafft damit einen nützlichen und deshalb sicher angenehmen Automatismus.
** Die Variable $fatal **
... ist ein Flag, der ggf. an verschiedenen Stellen in dem selben Programm einen verschiedenen Wert haben kann, sich also im Programmablauf womöglich ändert. Wenn klar ist, dass auch bei dem Auftreten eines Fehlers an einer bestimmten Stelle das Programm (voraussichtlich) fortgesetzt werden kann, dann sollte $fatal dort auf false stehen, ist aber die weitere Programmausführung dann (voraussichtlich) nicht möglich oder nicht sinnvoll, dann eben auf true mit der Wirkung, dass die Fehlerbehandlung auch zum Abbruch führt. Das wird auch bei richtigen Programmen so gemacht, da gibt es oft sogar verschiedenste "Error-Level", z.B. "Angriff", "Fatal", "Warnung", "Notiz" - hier genügen, denke ich, derer zwei.
Das mag (hier) genügen.