Siebter Schritt - Die Actions
Actions im RedSparkFramework
Wir haben inzwischen alles, was für ein Modul nötig ist, Struktur, Datenbank, Menueintrag, Texte, Konfiguration, etc. Was fehlt sind die Actions, quasi das eigentliche Herzstück der Modulfunktionen.
Eine Action besteht unserer Erfahrung nach meist aus mehreren Abschnitten (z.B. Formularanzeige, Speicherung, Weiterleitung, etc.). Das RedSpark Framework führt an dieser Stelle den Begriff "subaction" ein. Meist wird zunächst die "default" Subaction aufgerufen, die wiederum zur Speicherung zur "save" Subaction leitet und im Fehlerfall erneut die "default" Subaction inkl. Fehlermeldung anzeigt.
Zusätzlich arbeiten die meisten Actions auf einem ausschließlich für diese Action nötigen Datensatz, welcher in der Klasse über Klassenattribute lokal definiert werden kann.
Zudem haben die Klassen den Vorteil, dass sie objektorientiert entwickelt werden kann. Die Actionklassen implementieren Interfaces (z.B. Cachable, etc.) und beerben teilweise bereits vorgefertigte Actiontypen (z.B. Feed, Listing, etc.).
Einfache Actions bestehen in diesem Modell in der Regel aus wenigen Zeilen Code und implementieren meist nur die default Subaction, sind also nicht viel komplizierter als eine Methode nach ZEND Framework Vorbild.
Actions als Klassen
Das RedSpark Framework erweitert an dieser Stelle die vom ZEND Framework vorgegebenen Actions entscheidend. Jede Action ist, anders als beim ZEND Framework, eine eigene Klasse und nicht bloß eine Methode. Der Hintergrund ist der folgende:Eine Action besteht unserer Erfahrung nach meist aus mehreren Abschnitten (z.B. Formularanzeige, Speicherung, Weiterleitung, etc.). Das RedSpark Framework führt an dieser Stelle den Begriff "subaction" ein. Meist wird zunächst die "default" Subaction aufgerufen, die wiederum zur Speicherung zur "save" Subaction leitet und im Fehlerfall erneut die "default" Subaction inkl. Fehlermeldung anzeigt.
Zusätzlich arbeiten die meisten Actions auf einem ausschließlich für diese Action nötigen Datensatz, welcher in der Klasse über Klassenattribute lokal definiert werden kann.
Zudem haben die Klassen den Vorteil, dass sie objektorientiert entwickelt werden kann. Die Actionklassen implementieren Interfaces (z.B. Cachable, etc.) und beerben teilweise bereits vorgefertigte Actiontypen (z.B. Feed, Listing, etc.).
Einfache Actions bestehen in diesem Modell in der Regel aus wenigen Zeilen Code und implementieren meist nur die default Subaction, sind also nicht viel komplizierter als eine Methode nach ZEND Framework Vorbild.