Zum Inhalt springen
Der Guide für ein smartes Leben.
PHP-Enzyklopädie

Teil 5: Serie: PHP-Frameworks Teil 7 - eZ Components

Autoren: Redaktion pcmagazin und Tobias Hauser • 2.11.2009 • ca. 1:25 Min

Dies entspricht im Grundaufbau dem weithin bekannten Hello-World-Beispiel aus der eZ-Dokumentation. Natürlich sind Ihrer Fantasie hier mit eigenen Zonen keine Grenzen gesetzt. Die PHP-basierte Template-Datei greift nun einfach auf die im Controller übergebene Variable zu. Sie können hier einfach ...

Dies entspricht im Grundaufbau dem weithin bekannten Hello-World-Beispiel aus der eZ-Dokumentation. Natürlich sind Ihrer Fantasie hier mit eigenen Zonen keine Grenzen gesetzt. Die PHP-basierte Template-Datei greift nun einfach auf die im Controller übergebene Variable zu. Sie können hier einfach die Frameworks-Variable ausgeben:

var_dump($this->frameworks);

Datenanschluss

Natürlich ist es noch nicht so spannend, nur einen einfachen Array auszugeben. Die Daten sollen nun aus der schon aus den anderen Teilen der Framework-Reihe bekannten Datenbanktabelle frameworks kommen. Hierzu bietet sich als Teil des MVC-Models von eZ die Klasse Persistent Objects an. Die persistierten Objekte werden sehr einfach gehandhabt. Sie erstellen eine Klasse mit der Struktur des Objekts.Dazu gibt es dann eine Beschreibungsdatei, die die Struktur mit der Datenbank mappt. Diese kann auch automatisch mittels der Klasse PersistentObjectDatabase SchemaTiein erstellt werden. Zuerst aber zur Klasse mit dem persistierten Objekt: Sie landet im Verzeichnis lib/models und erhält den Namen framework.php. Die Klasse selbst heißt Framework. Sie benötigt die Eigenschaften für die entsprechenden Datenbankfelder, außerdem eine Implementierung von getState() und setState():

PHP-Frameworks Teil VII - eZ Components
Ausgabe II: Die Daten kommen aus der Datenbank, aber die Informationen aus der Relation fehlen.
© Archiv
class Framework {
private $id = null;
public $name = null;
public $licence = null;
public function getState() {
$result = array();
$result['id'] = $this->id;
$result['name'] =
$this->name;
$result['licence'] =
$this->licence;
return $result;
}
public function
setState(array $properties) {
foreach($properties as $key =>
$value) {
$this->$key = $value;
}
}
}

Diese Klasse muss natürlich wieder bekannt gemacht werden, das heißt, in autoload.php fügen Sie ein Element in den Array ein:

return array(
'frameworksMvcConfiguration' =>
'config.php',
'frameworksRouter' => 'router.php',
'frameworksController' => 'control
lers/frameworks.php',
'frameworksRootView' =>
'views/root.php',
'Framework' => 'models/framework.php'
);

Die Beschreibungsdatei landet in lib/definitions/framework.php. Sie gibt direkt eine Definition des Objektes zurück. Die wichtigsten Eigenschaften sind die Datenbanktabelle und die zugehörige Klasse des persistenten Objekts.

Alle Eigenschaften des persistenten Objekts werden definiert und mit dem entsprechenden Feld in der Datenbanktabelle in Verbindung gebracht. Der Primärschlüssel erhält als Id-Eigenschaft dabei noch mal eine Sonderbehandlung.