Sahnestückchen

Reihe: PHP - Frameworks - Cake PHP

Cake PHP orientiert sich stark an Ruby on Rails. Allein dies qualifiziert es für unsere PHP-Framework-Serie. Dazu kommen viele nützliche Funktionen.

PHP - Frameworks Teil 1 - Cake PHP

© Archiv

PHP - Frameworks Teil 1 - Cake PHP

Die Entwicklung von Cake PHP oder kurz Cake begann 2005. Michal Tatarynowicz startete damals mit einem kleinen Framework nach Ruby-on-Rails-Vorbild.Wie bei vielen anderen Projekten entwickelte sich daraus ein spannendes Projekt, als Michal den Code unter die MIT-Open-Source-Lizenz gestellt hat.Damit bietet sich die Möglichkeit, kommerzielle Erweiterungen und Bibliotheken auf Cake PHP basieren zu lassen. Dennoch gibt es eine Vielzahl an Open-Source-Erweiterungen.

Einrichtung

Für die Testinstallation rufen Sie nach dem Entpacken direkt das Verzeichnis von Cake PHP auf. Die eigentliche Webanwendung befindet sich in app. Der nach außen sichtbare Teil ist im Verzeichnis webroot zu finden. Dort übernimmt die index.php die Abarbeitung, für das Routing der URLs ist gleich eine .htaccess-Datei vorhanden.

Die einzelnen Anwendungsteile lassen sich auch voneinander trennen, um beispielsweise ein core-Verzeichnis für mehrere Installationen zu verwenden ().

Vorsicht, wenn Ihr Webserver kein mod_rewrite erlaubt beziehungsweise .htaccess-Dateien aktuell nicht berücksichtigt werden, erscheint die Startseite ohne CSS komplett unformatiert.

Hier haben Sie dann zwei Möglichkeiten: Sie aktivieren mod_rewrite und erlauben .htaccess-Dateien oder Sie deaktivieren das URL-Rewriting von Cake PHP. Dazu gehen Sie in die Datei app/config/core.php und kommentieren die folgende Zeile aus:

Configure::write('App.baseUrl', env
('SCRIPT_NAME'));

Model-View-Controller

Wie bei den meisten Frameworks steht das Model-View-Controller-Modell (MVC) im Vordergrund. In Cake PHP ist der erste Schritt, die Datenbank zu konfigurieren. Dies geschieht in app/config/database.php.

Diese Datei existiert anfangs nicht, Sie können aber database.php.default in database.php umbenennen. In unserem Fall soll die Datenbank frameworks heißen. Die Konfigurationsdatei sieht noch eine Testdatenbank vor, sprich, Sie können in einem weiteren Testkontext arbeiten. Welcher eingesetzt werden soll, steuern Sie im Model über $useDbConfig. Für unsere Zwecke reicht eine Standarddatenbank.

class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'frameworks',
'prefix' => '',
'encoding' => 'UTF-8'
);
}

In Sachen unterstützte Datenbanken bietet Cake PHP eine breite Auswahl. Die Spanne reicht von MySQL (mit mysql und mysqli) über Oracle und MS SQL Server bis hin zu Postgre SQL. Verantwortlich für die Datenbankabstraktion in Cake sind die DBO. Sie finden die entsprechenden Datenquellen unter cake/libs/model/datasources/dbo.

Durch die strikte Anwendung des MVC-Modells erwartet Cake PHP standardmäßig eine Datenbank. Es mag allerdings Anwendungsfälle geben, in denen Cake ohne Datenbank laufen soll.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…