Design Patterns
MVC
Fuman ist nach dem klassischen MVC-Pattern aufgebaut, wobei das Model ausgelagert ist:
- Model: Ist in der Fuman_Table mit Fuman_InputType beschrieben. Also z.B. Tabelle product mit id, name, price.
- Controller: Ist in einer Action beschrieben. Also z.B. app_name_action_product
- View: Ist im Template-File (.phtml) beschrieben. Also z.B. app/name/action/product/assets/product.phtml
Front Controller
Mit folgenden Klassen wurden das Front-Controller Pattern implementiert:
- Fuman_Application_Abstract: Beschreibt die Applikation und ihre Prozesse
- Fuman_Request: Beschreibt die Anfrage
- Fuman_Response_Abstract: Beschreibt die Antwort
- Fuman_Client: Beschreibt den Nutzer
- Fuman_Router: Beschreibt das Routing
Factory method
Ist in der Fuman_Factory Klasse implementiert, wobei auch andere Klassen intern eine Factory besitzen, welche von Config oder Datenbankparametern beeinflusst werden.
Lazy Loading
Die Klasse Fuman_Loader lädt on-demand Klassen, wenn diese aufgerufen werden. Anhand des Klassenamens wird der Dateipfad gerechnet und die Klasse geladen.
Observer
Auf der app_core_action_cron Klasse können sich Klassen registrieren welche beobachtet werden sollen bzw. in regelmässigen Abständen Aktionen durchführen sollen (z.B. Suchindex erstelle, Temporäre-Dateien löschen, Newsletter verschicken).