Der Anfang mit CakePHP
Patty-cake, patty-cake...
Vorwort
Wilkommen im Himmel der Web-Entwicklung
Wenn Du das Vorwort eines technischen Handbuches liest, hast Du wahrscheinlich zu viel Zeit. Wir sind keine Berühmtheiten, und wenn dieser Stoff genau das ist was Du suchst, dann überspringe dieses überflüssige Kapitel und tauche direkt ein.
Audience
This material is written for developers at all levels of ability; anyone who enjoys creating robust, maintainable applications quickly and effectively.
In order to understand the content of this document, you're going to need to have a working knowledge of PHP. Some basic familiarity with object-oriented programming will also help, though I suppose the introductory sections of this document could act as a primer of sorts.
There will be content that addresses technology which is technically beyond the scope of this document and not specific to the CakePHP framework. Some of these technologies include:
- AJAX
- JavaScript
- SQL
- Web Server Administration
Einleitung zu CakePHP
Was ist CakePHP? Warum sollte man es verwenden?
CakePHP ist ein freies, quell-offenes, rapid development Framework für PHP. Es ist eine Basis Struktur für Programmierer um Web Anwendungen zu gestalten. Unser primäres Ziel ist es euch zu ermöglichen, in strukturierter und schneller Weise zu Arbeiten - ohne den Verlust von Flexibilität
CakePHP entfernt die Monotonie aus der Webentwicklung. Wir liefern euch alle Werkzeuge die ihr wirklich zum Start für eure Programmierung benötigt: Die Anwendungsspezifische Logik eurer Seiten. Anstatt das Rad jedesmal neu zu erfinden wenn ihr euch hinsetzt um ein neues Projekt zu realisieren, checkt eine Kopie von CakePHP aus und legt los mit den wirklich komplizierten Dingen eurer Anwendung.
CakePHP hat ein aktives Entwickler Team und eine ebenso aktive Community, die das Projekt stark aufwertet. Zusätzlich, euch davon abzuhalten Räder neu zu erfinden, bedeutet CakePHP, daß der Kern eurer Anwendung gut getestet ist und permanent verbessert wird.
Hier ist eine kurze Liste der Features, deren Vorzüge ihr genießen könnt, wenn ihr CakePHP verwendet:
- Aktive, freundliche Community
- Flexible Lizensierung
- Kompatibel mit PHP4 und PHP5
- Integriertes CRUD für Datenbankinteraktionen
- Anwedungs Scaffolding ("Gerüstbau")
- Code Generierung
- Model-View-Controller (MVC) Architektur
- Request Dispatcher mit sauberen, individuellen URLs und Routen
- Integrierte Daten Validierung
- Schnelles und flexibles Templating (PHP syntax, mit Helfern)
- Präsentations Helfer für AJAX, JavaScript, HTML Formulare und mehr
- Email, Cookie, Sicherheit, Session, und Request Handling Bausteine
- Flexible Zugriffssteuerungs-Listen (ACL)
- Daten Bereinigung
- Flexibles Caching
- Lokalisierung
- Funktioniert in jedem Webseiten Unterverzeichnis mit wenig bis gar keiner notwendigen Apache Konfigurierung
Wo man Hilfe bekommt
Du hast am richtigen Ort begonnen. Dieses Handbuch (und die API) sollte wohl der erste Ort sein, den Du aufsuchst um Antworten zu finden. Wie in vielen anderen Open Source Projekten kommen ständig neue Leute hinzu. Versuche Dein Bestes Dir Deine Fragen selbst zu beantworten. Die Antworten könnten langsamer kommen aber nachhaltiger sein - und Du entlastets unseren Support Aufwand. Sowohl das Handbuch als auch die API haben eine Online Komponente
Wenn Du absolut ratlos bist, ruf uns im CakePHP IRC Kanal. Gewöhnlich ist jemand aus dem Entwickler Team dort anzutreffen. Insbesondere in den Tagsstunden von Nord- und Südamerikanischen Nutzern. We hören gerne von Dir, ob Du nun Hilfe benötigst, Nutzer in Deiner Gegend suchst oder ob Du uns einen Brandaktuellen neuen Sportwagen spendieren möchtest.
#cakephp @ irc.freenode.net
Die CakePHP Bakery ("Bäckerei") ist die Anlaufstelle für alles was CakePHP betrifft. Schau dort nach Anleitungen, Fallstudien und Code Beispielen. Wenn Du dann mit CakePHP vertraut bist, log Dich ein und teile Dein Wissen mit der Community und Du erhälst sofort Ruhm und Glück.
CakeForge ("Kuchen Schmiede") ist eine weitere Entwickler Quelle, die Du verwenden kannst um Deine eigenen CakePHP Projekte mit anderen zu teilen. Wenn Du nach einer Killer Komponente suchst (oder eine zur Verfügung stellen möchtest) oder ein anbetungswürdiges Plugin hast oder suchst, schau in der CakeForge nach.
Die offizielle CakePHP Webseite ist immer ein guter Ort den man besuchen sollte. Sie bietet Links zu häufig verwendeten Entwickler Werkzeugen, Screencasts, der Möglichkeit zu spenden und Downloads.
CakePHP hat auch eine sehr aktive Google Gruppe. Sie kann eine hervorragende Quelle sein um archivierte Antworten zu finden, für Häufig gestellte Fragen und um Antworten für akute Probleme zu finden.
http://groups.google.com/group/cakephp-de (deutsch)
http://groups.google.com/group/cake-php (englisch)
Model-View-Controller verstehen
Übersicht
Gut geschriebene CakePHP Anwendungen folgen dem MVC (Model-View-Controller) Software Entwurfsmuster. Programmierungen nach MVC teilen die Anwendung in drei Haupt Bestandteile. Das Model präsentiert die Anwendungsdaten, die View generiert eine Präsentation der Model-Daten, und der Controller behandelt und steuert Benutzeranfragen.
IMAGE
Abbildung 1: Eine elementare MVC Anfrage
Abbildung 1 zeigt ein Beispiel einer einfachen MVC Anfrage in CakePHP. Zur Veranschaulichung nehmen wir an, ein Benutzer namens Ricardo hat gerade auf den "Kaufe einen eigenen Kuchen!"-Link deiner Webanwendung geklickt.
- Ricardo klickt auf den Link der zur Adresse http://www.example.com/cakes/buy führt, und der Browser sendet eine Anfrage an Deinen Webserver.
- Der Dispatcher überprüft die angeforderte URL (/cakes/buy) und leitet die Anfrage zum zuständigen Controller weiter.
- Der Controller verarbeitet Anwendungsspezifische Abläufe. Zum Beispiel überprüft die Anwendnung ob Ricardo eingeloggt ist.
- Der Controller benutzt die Models um Zugang zu den Anwendungsdaten zu bekommen. In den meisten Fällen präsentieren Models die verschiedenen Tabellen einer Datenbank, aber es könnten genau so gut LDAP Einträge, RSS Feeds oder Dateien sein. In unserem Beispiel wird das Model benutzt um Ricardo's letzte Einkäufe aus der Datenbank auszulesen.
- Sobald der Controller die Daten verarbeitet hat, werden diese an die View weitergeleitet. Die View formatiert die Daten und bereitet Sie zur Ausgabe vor. Views in CakePHP sind meistens im HTML Format. Es könnte aber auch einfach ein PDF, XML Dokument oder ein JSON Objekt, je nach Anforderung, ausgegeben werden.
- Sobald die View die Ausgabe vorbereitet hat, wird der Inhalt an Ricardos Browser ausgegeben.
Fast jede Anfrage deiner Anwendung folgt diesem Grundmuster. Es kommen später noch einige Cake-spezifische Details hinzu.
Warum MVC verwenden?
Weil es ein bewährtes und effektives Software Entwurfsmuster ist, das eine Webanwendung in eine wartbare, modulare und effizient entwickelte Anwendung verwandelt. Anwendungsaufgaben in Models, Views und Controllers zu teilen macht Deine Anwendung sehr schlank. Neue Features sind einfach hinzugefügt, alte Features schnell in einer neuen Oberfläche verpackt. Die modular und unterteilte Logik erlaubt Entwicklern und Designern gleichzeitig an der Anwendung zu arbeiten. Dies beinhaltet ebenso die schnelle Entwicklung eines ersten Prototyps. Dadurch ist es ebenso möglich einen Teil der Anwenung zu verändern, ohne einen anderen Teil zu beeinflussen.
Wenn Du noch nie eine Anwendung mit dieser Methode entwickelt hast, wird es eine Weile dauern. Aber wir sind sehr zuversichtlich, dass wenn Du Deine erste CakePHP Anwendung erstellt hast, Du nie wieder anders Arbeiten möchtest.

login to add a comment