PHP Alleskönner

Teil 5: PHP-Frameworks Teil VIII - Zend Framework

Die View finden Sie unter views und dort unter scripts. Für den index-Controller heißt die View index. Standardmäßig wird die Dateiendung .phtml verwendet. Platzhalter sind reiner PHP-Code. Mit Zend_Layout können Sie etwa den Rahmen vom Controller-basierten Inhalt trennen.

Relationen

Um im Zend Framework die Relation zwischen der frameworks- und der licences-Tabelle abzubilden, benötigen Sie nur eine DbTable für die licences-Tabelle. Sie können auch ein Model und einen Modelmapper anlegen, notwendig sind beide nicht. In der licences-Tabelle muss die Relation zur Framework-Tabelle abgetragen sein. Dies geschieht in der Eigenschaft $_referenceMap. Sie enthält alle Relationen als Einträge.Jede Relation besitzt einen Namen (auch Regel/rule genannt). Damit wird die anzuwendende Regel später identifiziert. Die Konfigurationsangaben sind, welche Spalte verknüpft ist (columns) - dies kann auch ein Array mit mehreren Spalten sein. refTableClass verweist auf die DbTable-Klasse für die Framework-Tabelle. refColumns ist ein Wert oder ein Array mit den Spalten in der Tabelle, die die Fremdschlüssel enthalten.

PHP-Frameworks Teil VIII - Zend Framework

© Archiv

Einfach: Die Daten aus dem Model werden korrekt ausgegeben.
<?php
class Default_Model_DbTable_Licence
extends Zend_Db_Table_Abstract
{
protected $_name = 'licences';
protected $_referenceMap = array(
'LicenceFramework' => array(
'columns' => 'id',
'refTableClass' => 'Default_Model_
DbTable_Framework',
'refColumns' => 'licence_id'
)
);
}
?>

Das eigentliche Holen der Werte erfolgt im Frameworkmapper in der Methode fetchAll(). Dort wird die Relation mit der Methode findDependentRowset (Klasse, Regel) angesprochen. Erster Parameter ist die (abstrakte) Klasse, zweiter Wert ist die Regel für die gewünschte Relation.Ausgeführt wird die Methode immer auf einer Reihe des Abfrageergebnisses. Das heißt hier, pro Framework werden die zugeordneten Lizenzen geholt. Da es sich hier um eine 1-zu-1-Beziehung handelt, können Sie direkt das erste Resultat verwenden.

PHP-Frameworks Teil VIII - Zend Framework

© Archiv

Erledigt: Die Frameworks und Lizenzen werden ausgelesen.
public function fetchAll()
{
$resultSet = $this->getDbTable()->
fetchAll();
$entries = array();
foreach ($resultSet as $row) {
$entry = new Default_Model_Frame
work();
$licence_value = $row->findDependent
Rowset('Default_Model_DbTable_Licence', 'LicenceFramework');
$licence_row = $licence_value[0];
$licence_name = "test";
$entry->setFrameworkId($row->id)
->setName($row->name)
->setLicenceId($licence_row->licence_
name)
->setMapper($this);
$entries[] = $entry;
}
return $entries;
}

Der Einfachheit halber übergeben wir den Lizenznamen statt der Lizenz-ID. Hier könnten Sie noch weiter anpassen und beispielsweise die ID mit verwenden. Und auch für eine 1-zu-n-Beziehung sähe das Vorgehen genauso aus, nur, dass Sie nicht den ersten Wert aus dem Ergebnis weitergeben, sondern das gesamte Ergebnis.

Inzwischen ausgereift

Viele Jahre lang war der MVC-Ansatz im Zend Framework eher rudimentärer Natur. Dagegen gab es die flexible Datenbankabfrage und viele andere Elemente aus dem Framework schon sehr lange. Mittlerweile ist aber auch der MVC-Ansatz sehr ausgereift und muss sich nicht hinter spezialisierten Frameworks verstecken. Deswegen lässt sich das Zend Framework sowohl als kleine Beimischung, als auch als vollständige Entwicklungsbasis hervorragend verwenden.

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 Sennheiser-Headset, Xbox-One-Tagesangeboten, Asustor-NAS, Powerline-Set 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.