Oft wird vorgebracht, wenn darüber gesprochen oder geschrieben wird, daß PHP eine gute Sprache für kleinere Projekte sein kann, sie aber für größere Projekte problematisch ist. Für mich ist eine Programmiersprache in erster Linie ein Werkzeug. Und um mit einer Metapher weiterzuarbeiten: Um ein Loch in eine Wand zu bohren, greife ich ja auch nicht zu einem Akkuschrauber. Aber ich könnte natürlich versuchen, das Problem so zu lösen
.
So gibt es für die verschiedenen Problemstellungen in der Informatik eben auch ganz verschiedene Lösungsmöglichkeiten, wenn man mal die Effizienz außen vorläßt. Nun ist PHP in den verschiedensten Versionen bei diversen Webhostern vorinstalliert oder der Kunde hat einfach diese Vorgabe gemacht. Sich dann darüber zu beschweren, bringt also wenig. Also, ans Werk und drauf los programmiert? Eher nicht! Denk mal über folgendes nach:
Eine Anforderung an moderne Websites ist, daß sie der heutigen Zeit gewachsen sein müssen. Die Betreiber müssen schnell mit Änderungen regieren können. Für die Entwickler bedeutet das, daß die nicht nur in der Lage sein müssen, das “Look and Feel” ohne großen Aufwand zu ändern, sondern das auch Weiterentwicklungen immer noch möglich sind. Der effektivste Weg ist die strikte Trennung von Präsentation und Logik. Dies verlangt auch viel Selbstdisziplin vom Programmierer.
Auch für kleinere und mittlere Projekte können Datenbanken durchaus sinnvoll sein. Oft ist eine MySQL im angemieteten Webspace vorinstalliert. Der ambitionierte Anfänger sucht also im Netz nach Codebeispielen wie man das bewerkstelligt und findet so etwas:
OK, das wird seinen Zweck erfüllen … aber es illustriert auch das von mir angesprochene Problem. Arbeitet man so, wird man nach einiger Zeit Code pflegen müssen, der vor Fehlern und Seiteneffekten nur so wimmelt. Und auf das DRY-Prinzip (Don’t repeat yourself) will ich noch nicht einmal eingehen. Was soll eigentlich erreicht werden? Prinzipiell soll nur eine Verbindung zur einer Datenbank hergestellt, es soll ein SQL-Statement übergeben und das Ergebnis in HTML ausgegeben werden. Das genau tut das obige Beispiel. Aber wieviele Anwendungen bestehen aus nur 1 DB-Tabelle? Trennen wir das Ganze mal und stellen es in OOP dar:
Nehmen wir an, das obige Beispiel wird unter dem Namen “db.sql” abgespeichert. Zukünftig reicht nun folgender Code aus, um ein Statement an die DB zu schicken und das Ergebnis zu holen.
Have fun!