|
|
|
|
Quicknavi |
|
«Vorherige Seite | Startseite | Nächste Seite »
Einführung
1. Entstehung des Frameworks
Zu Beginn meiner "Web-Karriere" beschäftigte ich mich zunächst mit statischen HTML-Seiten.
Webseiten wie drweb.de und
selfhtml.org waren gute Einstiegs-
Hilfen. Nach einer Eingewähnungsphase wurden bereits einige größere Seite in statischem
HTML umgesetzt. Dabei konnten die Grenzen von statischen Seiten sehr schnell ausgelotet werden. Allein
das Ändern des Menüs auf 50 Seiten war ohne Automatismen nicht mehr sinnvoll machbar. Damit
war der Weg zur dynamischen Webseiten-Entwicklung geebnet.
Noch während der Schulzeit versuchte ich mich an einfachen Skripten, die einfache dynamische
Elemente, wie Menüs, einbinden. Nach und nach wurden immer mehr Funktionen in Form weiterer
Skripten hinzugefügt. Diese waren alle für sich lauffähig, jedoch nicht ineinander
integrierbar. Mit der Zeit entstand bei der Entwicklung der Wunsch, nicht mit jedem weiteren Skript
gleiche oder ähnliche Funktionen nochmal implementieren zu müssen. Es begann also die Zeit
des Refactoring und der Auslagerung gemeinsam genutzter Funktionen in eine Funktions-Bibliothek
(global_functions.php).
Funktionen alleine waren jedoch nach einer gewissen Zeit ebenso nicht mehr gut genug. Der Wunsch nach
wiederverwendbaren Modulen war groß. So wurden Modul-Beschreibungen und Konfigurations-Mechanismen
beschrieben, die einem Modul eine definiert Form gaben. Nachteil war jedoch, dass diese im Quellcode
verändert werden mussten um in einem zweiten Projekt eingebunden werden zu können. Daraus
war die Idee der Trennung von Funktion und Design geboren, die durch Erweiterung der Konfigurations-
Mechanismen und der Einführung einer Template-Klasse umgesetzt wurde. Um dieses Modell herum
entwickelte ich lange Zeit Webseiten und Web-Applikationen, bis ich auch mit diesem Konzept an die
Grenzen des machbaren stieß. Es konnten zwar generische Module implementiert und verwendet
werden, jedoch nicht so granular, dass ein Modul ein einem weiteren Modul Verwendung finden konnte.
Daraus entwickelte sich gegen Ende des Studiums - und als Grundlage der Diplomarbeit - ein eigenes
GUI-DOM-Modell, mit dem es möglich ist, beliebige Module in beliebige Seiten einzubauen. In diesem
Weiterentwicklungs-Schritt legte ich viel Wert auf die Implementierung zahlreicher Pattern um Standard-
Lösungen zu schaffen. In der PageController V1 Implementierung wurden Templates nach definierten
Tags geparst und die definierten Tags wurden mit in PHP abgefasster Funktions-Logik versehen. Des
Weiteren konnte mit diesem Modell nach MVC entwickelt werden, die Trennung von GUI, Geschäfts-
Logik und Datenhaltung wurde ebenso berücksichtig. Die PageController-Implementierung stieß
jedoch mit der größer werdenden Anzahl an GUI-Modulen an die Grenzen, da die verfügbaren
Tags begrenzt und nicht frei im XML-Code konfigurierbar waren.
Das heute eingesetzte Konzept des PageControllers V2 basiert auf einem genersischen XML-Parser, der
aus einem vorgegebenen Template diejenigen Tags zu einem Objektbaum parst, die er kennt. Die Anzahl
der bekannten Tags kann generisch durch TagLibs erweitert werden. So ist das Framework eine echte
Basis für Entwicklungen. In der aktuellen Version sind zudem ReImplementierungen von Tools
für Konfiguration, Benchmarking, Fehlerbehandlung und Loging inkludiert. Des Weiteren wurden alle
Core-Klassen, Tool-Klassen und Module einem Review unterzogen und diese komplette dokumentiert.
Auf diesem Framework basieren heute zahlreiche Internetseiten mit diversen Datenbanken und Funktionen,
sowie Backend-Tools zur Webseiten-Verwaltung.
2. Zweck der Dokumentations-Seite
Das über lange Jahre entwickelte Framework bietet eine solide Basis für effiziente Software-
Entwicklung für Web-Applikationen und ich verbinde damit viel Erfahrung, die ich mit diesen
Seiten weitergeben möchte. Die Seiten beinhalten zum einen die Dokumentation des
Adventure-PHP-Frameworks, zum anderen Tutorials zum objektorientierten Software-Entwurf.
Die Seite versteht sich demnach sowohl als Referenz als auch Tutorium.
Kommentare
Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.
|
|
|
|