Beispiel für Aggregation (Objekte in Objekten)
function _fetch_mesg($mesgid){
if( ! isset($this->STH_FETCH_MESG) ){
$this->STH_FETCH_MESG = $this->DBH->prepare("SELECT * FROM $this->TABN WHERE mesgid=?");
}
$this->STH_FETCH_MESG->execute(array($mesgid));
$mesg = $this->STH_FETCH_MESG->fetchAll();
if( empty($mesg) ){ dd("Diese Nachricht existiert nicht!"); }
return $mesg[0];
}
Wobei man die Struktur für die Statements weiter verbessern kann: $this->STATEMENTS
was den Vorteil hat, daß man ggf. alle Statements mit einmal löschen kann. Aber das ist ja nur ein Beispiel und wie man sehen kann steckt in $this->DBH
ein weiteres Objekt, das PDO Objekt. Letzteres wird zur Laufzeit eingebunden, man könnte es auch über den Konstruktor injezieren sofern es über die gesamte Anwendung benötigt wird.
Des Weiteren
function param($name = ''){
if(! isset($this->CGI) ){
require "CGI.php";
$this->CGI = new CGI();
}
return $this->CGI->param($name);
}
auch ein typisches Beispiel für eine spätere Aggregation/late Delegation. Das CGI-Objekt wird erst eingebunden wenn die Methode param()
aufgerufen wird. In Fakt beim ersten Aufruf dieser Funktion.
Das sind nur mal eben 2 Beispiele wie man seine Modells in Arraystrukturen abbilden kann. Deiner Kreativitär sind hier keine Genzen gesetzt.
MFG