CakePHP
CakePHP, kurz Cake, ist ein in SQL-Abfragen.
Merkmale
* kompatibel mit PHP4 und PHP5
* vereinfachter Datenbankzugriff, CRUD-Funktionalität bereits integriert
* Request-Dispatcher mit sauberen URLs
* flexible Templates mit PHP-Syntax
* Helper vereinfachen die Arbeit in den Templates (AJAX, JavaScript, Formulare uvm.)
* funktioniert in jedem Verzeichnis, meist keine Konfiguration des Webservers notwendig
* eingebaute Formularüberprüfung
* Scaffolding von Anwendungen (automatisch generierte Datentabellen und -formulare zur Verwaltung der Modelle)
* Unterstützung von Access Control Lists
* eingebautes Filtern von durch über Formulare eingespeisten Schadcode
* Komponenten für Session-Verwaltung, Request-Handling und Security
* Caching von Ausgabe und Modellen
Schichten
Model
Als Backend einer CakePHP-Applikation kommt eine Datenbank zum Einsatz. Es werden folgenden Datenbanken unterstützt: MySQL, PostgreSQL und ein Wrapper für ADOdb.
Das sogenannte Model (im Deutschen Modell) stellt die vorhandenen Daten dar. In einer Benutzerverwaltung, welche mit Benutzer und Benutzergruppen arbeitet, sind die Benutzer (user) und Benutzergruppen (usergroup) die Models.
Jedes Modell bringt eine Anzahl an Methoden mit, welcher zur Verwaltung der Daten genutzt werden. Zum Beispiel gibt es Methoden zum Lesen aus der Datenbank (Model::read() oder Model::findAllById()), zum Speichern der Daten in die Datenbank (Model::save() oder Model::saveField()) oder zu Erstellen eines neuen Datensatzes (Model::create()).
Die Beziehungen zwischen verschiedenen Modellen werden über sogenannte Associations (Beziehungen) festgelegt. Dabei existieren folgende Möglichkeiten: hasOne, belongsTo, hasMany und hasAndBelongsToMany. CakePHP kann damit automatisch die benötigten Datenbankabfragen (inklusive eventuell benötigter Join-Befehle_in_SQL) generieren. Die Konfiguration geschieht durch die Einhaltung bestimmter Konventionen bei der Vergabe der Namen von Datenbanktabellen, Modellen und Controllern (siehe Abschnitt "Philosophie"). Es werden keinerlei Konfigurationsdateien benötigt.
Controller
Der Controller enthält die sogenannte Geschäftslogik und bietet Schnittstellen, um mit dieser zu interagieren. Diese Schnittstellen werden analog zu Ruby on Rails Actions genannt. Eine HTTP-Anfrage (beispielsweise
View
Unter einem View versteht man die Präsentationsschicht einer CakePHP-Applikation. Es handelt sich bei einem View um ein Template, welches durch die Ausgabedaten des jeweiligen Controllers mit Inhalten gefüllt wird. Dabei kann beliebiger PHP-Code in einem Template eingebettet werden. CakePHP bringt einige sogenannte Helper mit, welche bestimmte Ausgaben in Templates erstellen können, z. B. Links, Formulare, JavaScript uvm. Für sich wiederholende Ausgaben kann man auf Elements zurückgreifen, welche man sich als Templates innerhalb von Templates vorstellen kann.
Siehe auch
Ähnliche Projekte
PHP on Trax (http://www.phpontrax.com)
Solar (http://solarphp.com)
Weblinks
• Offizielle Website
• CakeForge
• CakeBakery Artikel, News, Tutorials

