Sprunglinks

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