TALON4 Framework

Dokumentation

Kernklassen

Factory

Der Kern des TALON4 Frameworks besteht aus der TF-Factory.
Beinahe alle Klassenaufrufe werden nicht über das Schlüsselwort "new", sondern über die Funktion TF::Get abgewickelt.
Talon4 benötigt daher keinen Auto-Loader und nimmt diesen nicht in Beschlag, wenn andere Bibliotheken darauf aufsetzen. Weiter ist es möglich, Proxy-Klassen und Adapter zu realisieren, denn die wirklich zurückgegebene Klasse ist nicht festgelegt.

Adapterklassen

der Aufruf TF::get('TF.Dal.EntityQuery') ruft eine Adapter-Klasse auf, die wieder eine Datenbank-abhängige Sub-Klasse lädt, ein Objekt erzeugt und zurückgibt.

$myobject = TF::get('MyModule.MyClass');
$myobject2 = TF::get('MyModule.MyClass','argument1','argument2');

Singleton

Definiert eine Klasse die Konstante "TF_IS_SINGLETON" z.B. auf 1 (ungleich false) verarbeitet die Factory automatisch den Singleton und erzeugt nur ein einziges mal ein Objekt. Es ist kein Custom-Aufruf "getSingleton" o.ä. notwendig. Über die Konstante kann jede Klasse steuern, ob sie als Singleton genutzt werden muss.

Static Factory-Methode

Beinhaltet die Klasse eine static-Methode "_build" so wird diese vor dem Konstruktor aufgerufen. Aufgrund dessen ist es möglich, Klassen als Adapter zu nutzen oder die Klasse statisch vorzubereiten.

 

Die Factory prüft nicht auf ein bestimmtes Interface, sondern nur ob die Funktion existiert.

class MySample {
public static _build($param)
{
$obj = new self();
$obj->setParam($param);
return $obj;
}
}

Tau-Script

Des weiteren erlaubt Talon4 beinahe alle Klassen über TAU-Script zu konfigurieren. Das Tau-Script ist ein JSON / YAML-ähnlicher Syntax der Daten in einer Hierarchie ablegt.
Eine dieser Hierarchie-Ebenen ist "TF.default". Die Informationen innerhalb von TF.Default werden direkt an die dort definierte Klasse gegeben, wann immer eine Instanz angefordert wird.

 

 

TF.Default.MyModule.Myclass.Param: a

wird weitergeleitet wenn die Factory folgenden Aufruf erhält:

TF::get('MyModule.MyClass');

Voraussetzung ist, das die eigene Klasse eine Funktion "_SetConfig" beinhaltet.