In folgenden Tutorial möchte ich zeigen, wie man mit Hilfe von Class-Nesting in DCA-Klassen untereinander Methoden und Variablen nutzen kann.
Man stelle sich vor wir haben zwei DCA-Dateien - eine für die ptable und eine für die ctable.
DCA 1 (ptable): tl_myextensions.php mit der Klasse
PHP-Code:
class tl_myex extends backend
{
public var $tl_myex_var;
public function __construct()
{
parent::__construct();
$this->tl_myex_var = "hello world set by contruct";
}
public function tl_myex_function()
{
return "hello world send by tl_myex_function";
}
[...]
}
DCA 2 (ctable): tl_myextensions_items.php mit der Klasse
PHP-Code:
class tl_myex_items extends backend
{
private var $class_tl_myex;
public function __construct()
{
parent::__construct();
// create instanz of class tl_myex
$this->class_tl_myex = new tl_myex;
// use var of class tl_myex
echo $this->class_tl_mg->tl_myex_var;
// use function of class tl_myex
echo $this->class_tl_mg->tl_myex_function;
}
[...]
}
Wer jetzt in der Klasse "tl_myex_items" auf die Variable "tl_myex_var" oder die Funktion "tl_myex_function" zugreifen möchte steht vor einem Problem.
Jede eigene Backendklasse muss zunächst die Klasse "backend" erben um bestimmte DCA-Funktionalitäten darzustellen. Da es keine Mehrfachvererbung in PHP gibt wird das Ganze mit Class-Nesting durchgeführt.
Dafür wird lediglich in der Klasse "tl_myex_items" eine Instanz von "tl_myex" erzeugt. Ab sofort kann man damit auch auf Variablen und Methoden der Klasse "tl_myex" zugreifen ...
Ich hoffe ich konnte euch damit helfen!
Grüße, Andy
Lesezeichen