myMVC - Ein PHP-Framework, das das MVC-Paradigma implementiert
myMVC ist ein PHP-Framework, um das MVC-Paradigma (Model-View-Controller) zu implementieren.
Dieses System erlaubt eine komplette Trennung zwischen allem, was die Logik implementiert (Model) und allem, was die Datenanzeige implementiert (View).
Der Controller wird sich dann darum kümmern, diese Elemente miteinander zu verbinden.
Für jede Seite des Programms werden dann zwei oder mehrere Dateien angelegt:
- Eine "Action-Klasse", die die gesamte Logik implementiert, um die Nutzerdaten zu prüfen und zu verwalten (Suche/Speichern/Löschen aus der Datenbank, Bearbeitung, usw.)
- Eine "View-Klasse", die sich um die Anzeige der Daten kümmert, direkt oder mithilfe einer "Template-Engine"
- Eventuell ein "Template", das mit der "Template-Engine" verwaltet wird und das am Ende nichts anderes als eine HTML-Seite mit einigen TAGs ist
Das System erlaubt jeder Klasse (Action oder View), eine andere Klasse aufzurufen. Dieses wird mit einem HTTP-Redirect gemacht, so dass alle Probleme, die von einem "Refresh" des Browsers kommen, vermieden werden können (ansonsten wird die erste Action nochmal aufgerufen und die Daten nochmal geschickt).
Das System ist so gebaut, dass es mehrere Grundklassen gibt (siehe Dokumentation), von denen man seine eigene Action oder View ableitet. Diese Klassen bieten ein sehr flexibles System, um die Nutzerdaten zu prüfen.
Ein Untersystem des Frameworks ermöglicht eine einfache Verwaltung einer Datenbank (aktuell nur MySQL und PostgreSQL implementiert) mit einem weiteren Datenprüfsystem vor einer Suche oder Speicherung der Daten.
Der Controller verwaltet auch ein mehrsprachiges System (auf GetText basiert) sowie ein Rechteverwaltungssystem (siehe Methode hasUserRightForAction der Klasse Action). Dazu legt er ein Array an, das in einer View als Menü anzuzeigen ist, mit allen Actions, bei der die Methode isMenuAction "true" zurückgibt.
Weitere Informationen befinden sich in der Documentation und in den Beispielen, die von der Downloadseite herunterzuladen sind.
Das Framework erfordert PHP ab Version 5.2.4 und wurde auf einem LAMP-System getestet, obwohl es auch unter Windows und MAC funktionieren sollte.
Zur Zeit wurde nur eine Template-Engine implementiert, und zwar für Smarty. Es ist aber möglich, die Klasse myMVC_BaseEngine zu verzweigen, um ein anderes System zu nutzen.
Dieses Framework wird unter der Lizenz LGPL 2.1 zur Verfügung gestellt.