Design Patterns
MVC
Fuman ist nach dem klassischen MVC-Pattern aufgebaut, wobei das Model ausgelagert ist:
- Model: Ist in der Fuman\Db\Table mit Fuman\Schema\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\AbstractApplication: Beschreibt die Applikation und ihre Prozesse
- Fuman\FumanRequest: Beschreibt die Anfrage
- Fuman\Response\AbstractResponse: Beschreibt die Antwort
- Fuman\FumanClient: Beschreibt den Nutzer
- Fuman\Action\Router: Beschreibt das Routing
Factory method
Ist in der Fuman\DependencyInjection\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).