PHP Alleskönner

Teil 3: PHP-Frameworks Teil VIII - Zend Framework

class Bootstrap extends Zend_
Application_Bootstrap_Bootstrap
{
protected function _initAutoload()
{
$autoloader = new Zend_Application_
Module_Autoloader(array(
'namespace' => 'Default_',
'basePath' => dirname(__FILE__),
));
return $autoloader;
}
}

Damit ist sichergestellt, dass das Model, das wir jetzt erstellen, auch automatisch geladen wird. Das Model selbst besteht aus mehreren Klassen: Dem eigentlichen Model, das einen Datensatz als Objekt abbildet und den Zugriff auf die Werte über Eigenschaften regelt, einem Modelmapper, der das Speichern und Suchen in der Datenbank steuert und einer auf Zend_Db_Table_Abstract basierenden Klasse im Unterverzeichnis models/DbTable, die die Tabelle verknüpft.

Die Datei für das Model heißt Framework.php und landet im models-Verzeichnis, der Mapper heißt Frameworkmapper.php und landet im selben Verzeichnis. In models/DbTable legen Sie dann noch die DbTable-Klasse mit dem Namen Framework.php an.

Wir zäumen das Pferd hier von hinten auf und starten mit der DbTable-Klasse:

<?php
class Default_Model_DbTable_Framework
extends Zend_Db_Table_Abstract
{
protected $_name = 'frameworks';
}
?>

Hier wird nur der Name der Tabelle abgelegt. Wenn die Tabelle genauso heißt wie die Klasse, könnte diese Angabe auch weggelassen werden.

Auch den Primärschlüssel können Sie hier explizit mit der Eigenschaft $_primary angeben. Alternativ erfolgt eine automatische Erkennung.

Die Information zum Tabellennamen verwendet dann der Mapper in seinen Methoden setDbTable() und getDbTable(), um auf die Tabelle zuzugreifen:

<?php
class Default_Model_
FrameworkMapper
{
protected $_dbTable;
public function setDbTable
($dbTable)
{
if (is_string($dbTable)) {
$dbTable = new $dbTable();
}
if (!$dbTable instanceof
Zend_Db_Table_Abstract) {
throw new Exception
('Invalid table data gateway provided');
}
$this->_dbTable = $dbTable;
return $this;
}
public function getDbTable()
{
if (null === $this->_dbTable) {
$this->setDbTable('Default_Model_
DbTable_Framework');
}
return $this->_dbTable;
}
//Funktionen zum Speichern und Laden
}

Wenn der Tabellenzugriff geregelt ist, erhält der Mapper standardmäßig drei Funktionen: save() zum Speichern eines neuen Frameworks, find(Id) zum Auslesen eines bestimmten Frameworks per ID und fetchAll(), um alle Frameworks auszulesen. Hier sehen wir uns fetchAll() näher an:

Mehr zum Thema

Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
Amazon Blitzangebote
Technik-Deals

Die Highlights der Amazon Blitzangebote - heute mit Weihnachts-Angebote-Woche, Netgear-NAS, 57 Prozent auf Heimkino-Produkte und mehr.
Tipps zum leisen PC
Tipps und Tricks

Die Komponenten eines PCs erzeugen Hitze. Lüfter sorgen meist für eine lästige Geräuschkulisse. Mit unseren Tricks wird Ihr PC flüsterleise.
SSD Mythen Tipps
Solid State Disk

SSD-Tuning - was ist wahr, was ist falsch? Wir verraten, welche SSD-Mythen Sie vergessen können und welche Tipps wirklich helfen.
Urlaubsbilder
Fotografieren im Sommer

Von Sommerlicht bis Sonnernuntergang: Unsere 7 Tipps verraten, wie Sie Urlaubsfotos richtig machen und schöne Bilder mit nachhause bringen.