TALON4 Framework

Dokumentation

Request & Response

Die Request-Behandlung folgt in Talon meist folgendem Schema:
1) Bootstrap (index.php)
2) Dispatch/Router
3) Controller
4) View
5) Model, Mgr, Hilfsklassen
6) Deployment

 

Um eine Anfrage an den richtigen Controller zu leiten, wird im Dispatcher das Request-Objekt initialisiert. Abhängig von Domain, URL und Query-Parametern wird dann der zuständige Controller aufgerufen.

 

TalonContent hat z.B. je einen Controller für das Frontend, Backend, asynchrone Aufrufe und "besondere" Funktionen für dynamische Sitemap.xml und robots.txt-Anbindungen.

TF.Net.Request

Diese Klasse ist ein Singleton, d. h. die talon-Factory wird immer das gleiche Objekt zurückliefern. Sie erlaubt zugriff auf $_REQUEST und $_COOKIE unter zuhilfenahme einiger Sicherheitsfunktionen.

 

"Request" erweitert TF.Map und kann daher auch mit neuen Werten gefüllt werden.

$request->set('newvar',$newval);

Die Funktion "get" akzeptiert einen Variablen-Namen und einen Typus. die Typen "num" (numeric) und "num_nz" (numeric not zero) sind gezielt für Fremd- und Primärschlüssel die üblicherweise in verschiedenen Links notwendig werden.

$request->get('myuserid','num_nz');
$request->get('page','num');

Dispatcher

Flexible Dispatcher sind nicht in jedem Projekt notwendig, so kann es bei einfachen Umsetzungen auch nur einen einzigen Controller geben oder aber wie in einem CMS werden im Dispatcher bereits Datenbanken ("Model") angesprochen um einen URL zu entschlüsseln.
Der Standard-Dispatcher (TF.Controller.Dispatch) entscheidet anhand des Parameters "view" welcher Controller die Anfrage verarbeitet.

 

Über Die Tau-Script Konfiguration können mehrere Mappings (regular-expressions) und Zielcontroller hinterlegt werden. Passt kein Mapping, wird die Anfrage an den hinterlegten default_controller weitergeleitet.
Bootstrap-Aufruf:

TF::get('TF.Controller.Dispatch')->dispatch();

 

Da TF.Controller.Dispatch ein Singleton ist, kann die Konfiguration auch direkt in einer index.php geändert werden.

 

TF::get('TF.Controller.Dispatch')->addMapping($match,$handler);

URLMapper

Ist der Parameter view nicht gesetzt, ruft der Dispatcher den URLMapper auf und lässt den Request dekodieren.
Anschließend wird ganz normal via findController($path) der richtige Controller ausgewählt.