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).