molily: Programmstruktur bei aufeinander aufbauenden Abläufen

Beitrag lesen

Hallo,

mal konkret: http://molily.de/temp/weblog-recode-pingbacks.phps

Das Script geht ein paar Datenbankzeilen durch, sucht einige Fehler, korrigiert diese und ändert die Zeilen entsprechend.

Die Aufgabe des Scripts ist eigentlich supereinfach und man könnte das ganze sicher in ein paar Zeilen 08/15-Spaghetticode runterschreiben, das würde denselben Effekt haben. Ich habe die eigentlich simple Aufgabe versucht umzusetzen, als wollte ich wartbaren, ausbaubaren und recyclebaren Code schreiben, mit dem »Ereignis«- und Ausnahmebehandlung einfach, zentral und flexibel möglich ist. (Ich bin kein PHP-Experte, man kann sicher im Detail Verbesserungen und Ergänzungen vornehmen - es geht mir nur um die grobe Organisation. Ich sage nicht, dass der Code diesen Ansprüchen schon entspricht, es ist nur ein Versuch.)

Nun gibt es (abgesehen von PDO usw.) standardmäßig nur ein nicht-OOP-Interface für PostgreSQL, also gibts eine kleine Wrapper-Klasse. Dann gibts einen Haufen leider loser Funktionen, die als Handler dienen. Letztlich eine spezielle abgeleitete Klasse, die eine Verbindung zur konkreten Datenbank erstellt und die die konkreten Manipulierungsfunktionen enthält.

Die Handlerfunktionen für Erfolgs- und Fehlerfall liegen nun leider abseits der Klassen - man kann halt nur $this->$handlername() oder $handlername() machen bzw. if (function_exists($handlername)) $handlername; else $this->$handlername();. Das wäre in JavaScript kein Problem. Nutzbar für Fallunterscheidungen und alternative Programmabläufe sind die Handler dadurch nicht wirklich.

Wie würdet ihr so ein Programm strukturieren, also in Klassen, Methoden usw. aufsplitten? (Angenommen, es soll nicht quick'n'dirty sein, siehe oben.) Bringt dieses »Handler«-Konzept überhaupt was?

Mathias