Julius: Erster Prototyp des PHP-Forums

Beitrag lesen

Hallo 1unitedpower,

  • Fehlermeldungen im Produktiv-Modus nicht ausgeben (in config.php festlegen)

Die Möglichkeit bietet PHP dir bereits von Haus aus, wenn du das eingebaute Exception-System nutzt. Das gibt dir nämlich die Möglichkeit über php.ini-Einstellungen die Stufe des Error-Reporting einzustellen. Das Exception-System ist sowieso eine viel bessere Alternative zu abenteuerlichen Konstrukuten aus die() und exit().

Und es erfordert für dein Tutorial gar nicht so viele Änderungen. Du müsstest beispielsweise aus diesem hier:

 $result = mysqli_query($db, $query);
 if (!$result) die("Die Datenbank konnte nicht abgefragt werden");

nur dieses machen:

 $result = mysqli_query($db, $query);
 if (!$result) throw new Exception("Die Datenbank konnte nicht abgefragt werden");

Oder noch schöner:

 $result = mysqli_query($db, $query);
 if (!$result) throw new Exception($result->error);

Was du im Falle von mysqli-Fehlern sogar noch einfacher haben kannst, indem du die Library automatisch Fehler werfen lässt:

mysqli_report(MYSQLI_REPORT_ALL);

Jepp, es ging mir von vornherein um das Melden der mysqli-Fehler, das ich an und Abschalten wollte, aber wenn ich das in die Log-Dateien schreiben kann, ist das noch besser, dann brauche ich das gar nicht abschaltbar machen...

Vielen Dank, für deine Anregungen, ich schaue mir das alles mal genau an.

Das hat gleichzeitig den Vorteil, dass der aufrufende Code die Möglichkeit bekommt den Fehler abzufangen und zu behandeln. Dein Programm bleibt dann also lauffähig.

  • was kann ich stilistisch verbessern – ich will ja auch noch etwas dabei lernen :-)

Wie gut kennst du dich denn mit Objektorientiertheit aus? Das würde sicher sehr zu einer erkennbaren Strukturierung des Codes beitragen.

Kannst du mir da Lesestoff zu empfehlen? Vielleicht etwas Kompaktes, wo die Konzepte von OOP in PHP genauer erklärt werden? Den Rest hole ich mir dann aus der PHP-Doku.

Besser nicht.

Vielen Dank für den Hinweis, ich werde mich damit auseinander setzen.

Gruß
Julius