Sahnestückchen

Teil 2: Reihe: PHP - Frameworks - Cake PHP

Für solche Fälle hat sich ein kleiner Hack eingebürgert. Sie definieren eine eigene Datenquelle, die Sie in app/model/datasources packen () und als eigenen driver aufrufen. Eine Methode, die natürlich auch für echte eigene Datenbankverbindungen dienen kann.

Convention over configuration

Die Konventionen bestimmen bei Cake PHP den gesamten Aufbau von der Datenbank- Tabelle bis hin zur View. Zwar lassen sich viele der Konventionen über die Konfiguration auch ändern, aber seine vollen Möglichkeiten entfaltet Cake PHP erst, wenn man die Konventionen auch befolgt.

Den Anfang machen die Datenbanktabellen und zugehörigen Modelle. Nehmen wir an, Sie wollten die Frameworks aus dieser Framework-Serie in einer Tabelle speichern. Dazu wollen Sie von einer anderen Tabelle alle möglichen Features aufnehmen, die so ein Framework haben kann.

Die Relation zwischen beiden Tabellen ist dabei n zu m, sprich, jedes Framework kann n Features haben, jedes Feature kann bei m Frameworks vorkommen. Zugegeben, für diesen Praxisfall würde es auch reichen, alle Features als Spalten in der Framework-Tabelle vorzuhalten, aber hier dient es auch als Beispiel für die Abbildung von Relationen.

PHP - Frameworks Teil 1 - Cake PHP

© Archiv

Backstube: Die Homepage ist Anlaufstelle des CakePHP-Projekts.

Die Konvention sieht in Cake nun so aus: Das Model zur Tabelle ist im Singular gehalten und beginnt mit einem Großbuchstaben, sprich Framework und Feature. Die entsprechenden Tabellen sind Plural und in Kleinbuchstaben, also frameworks und features. Bei zusammengesetzten Namen wird im Model mit CamelCase (Großbuchstabe in der Wortmitte) gearbeitet, in der Tabelle mit Unterstrichen.

Fremdschlüssel bestehen aus dem Namen des entsprechenden Models im Singular mit angehängtem _id. Wenn wir also ein Model Licence für die Lizenz haben, ist in der frameworks-Tabelle ein Feld licence_id vorhanden.

Tabellen für n-zu-m-Beziehungen bestehen aus den Pluralnamen der zugrunde liegenden Tabellen, sprich features_frameworks. Die Reihenfolge der Tabellennamen ist alphabetisch.

CREATE TABLE IF NOT EXISTS 'features'
( 'id' int(11) NOT NULL, 'name' varchar(255) NOT NULL, PRIMARY KEY ('id'))
CREATE TABLE IF NOT EXISTS
'licences' ( 'id' int(11) NOT NULL, 'name' varchar(255) NOT NULL, PRIMARY KEY ('id'))
CREATE TABLE IF
NOT EXISTS 'features_frameworks'(
 'feature_id' int(11) NOT NULL, 'framework_id' int(11) NOT NULL)
CREATE TABLE IF NOT EXISTS
'frameworks' ( 'id' int(11) NOT NULL, 'name' varchar(255) NOT NULL, 'licence_id' int(11) NOT NULL, PRIMARY KEY ('id'))

Nun geht es daran, aus der einfachen Tabellenstruktur eine Anwendung zu machen. Für den Einstieg können Sie hierzu auch das Konsolenprogramm Bake verwenden (). Es wird im Verzeichnis cake/console mitgeliefert und erlaubt es, beispielsweise automatisch Model-Dateien anzulegen.

Aufbau

Der erste Arbeitsschritt nach dem Anlegen der Datenbank ist meist der Controller. In unserem Fall soll der Controller die Frameworks auslesen. Die entsprechende Klasse heißt also gemäß der Cake-Konvention FrameworksController. Er landet in app/controllers/frameworks_controller.php.

Der übliche Aufbau ist hier für ein Model auch einen Controller einzusetzen, dies ist aber auch änderbar. Gemeinsamen Code für mehrere Controller legen Sie am besten in einer Komponente ab.

Der folgende Code zeigt einen sehr einfachen Controller. Er greift über die Namenskonvention auf das Framework-Model zu und holt über die Methode find() alle Einträge. Das Model selbst muss es noch nicht geben. Ist es nicht vorhanden, ergänzt Cake PHP automatisch ein Model, das von der Basisklasse AppModel erbt:

<?php
class FrameworksController extends
AppController {
function index() {
$frameworks = $this->Framework->find('all');
$this->set('frameworks',
$frameworks);
}
}
?>

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".