CakePHP-Tutorial für Anfänger: Was ist das CakePHP-Framework?

⚡ Intelligente Zusammenfassung

Dieses CakePHP-Tutorial behandelt das Open-Source-PHP-Framework für die schnelle Entwicklung von MVC-basierten Webanwendungen. Es erklärt, was CakePHP ist, warum Teams es wählen, wie man es installiert, die Ordnerstruktur und Konfiguration, Namenskonventionen und wie das Model-View-Controller-Muster eine CakePHP-Anwendung steuert.

  • 🎂 Was CakePHP ist: CakePHP ist ein Open-Source-MVC-Framework, mit dem PHP-Webanwendungen mit weniger Code erstellt und gewartet werden können.
  • Warum es verwenden: Es bietet schnelle Entwicklung, Datenbankabstraction, integrierte Validierung und suchmaschinenfreundlich URLs out of the box.
  • 📦 Installation: Composer installiert CakePHP mit einem einzigen create-project-Befehl; die aktuelle Version 5 erfordert PHP 8.1 oder höher.
  • 📁 Ordnerstruktur: Zur besseren Wartbarkeit trennen übersichtliche Ordner Quellcode, Konfiguration, Tests, Protokolle, Plugins und das öffentliche Webverzeichnis.
  • 🔤 Konventionen: Konvention vor Konfiguration bedeutet einheitliche Benennung für Modelle, Controller und Views und reduziert so den Boilerplate-Code.
  • 🔁 MVC-Ablauf: Modelle verarbeiten Daten, Ansichten verarbeiten die Ausgabe und Controller steuern den Datenfluss.ping Die Anliegen sind klar voneinander getrennt.
  • 🤖 KI-Assistent: KI-Tools können CakePHP CRUD-Anwendungen erstellen und bei der Migration eines älteren CakePHP-Projekts auf Version 5 helfen.

CakePHP-Tutorial

Was ist CakePHP?

KuchenPHP CakePHP ist ein Open-Source-Framework für die schnelle Entwicklung und Wartung von Webanwendungen in PHP. Es basiert auf dem MVC-Architekturkonzept, das die einfache und unkomplizierte Erstellung von PHP-Webanwendungen mit weniger Code ermöglicht. CakePHP unterstützt zudem die Trennung von Geschäftslogik, Datenschicht und Präsentationsschicht.

Warum CakePHP Framework verwenden?

Hier die wichtigsten Vorteile der Verwendung des CakePHP-Frameworks:

  • CakePHP ist mit Abstand eine der schnellsten Webentwicklungsplattformen.
  • CakePHP ermöglicht Entwicklern eine verbesserte Kontrolle über die Datenbank und SQL-Abfragen.
  • Es hilft Anwendern, schnell robuste Webanwendungen zu entwickeln, ohne dabei die Flexibilität ihrer Entwicklungsumgebung einzubüßen.
  • Unterstützung für PostgreSQL, SQLite, MySQLund PEAR-DB für ADODB, eine Datenbankabstraction Bibliothek.
  • Ermöglicht Suchmaschinenfreundlichkeit URLs.
  • Bietet Funktionen wie Eingabevalidierung und Bereinigungstools, die die App sicher machen.
  • Vorlagen mit bekannter PHP-Syntax.

Wie installiert man CakePHP?

CakePHP lässt sich am besten mit Composer, dem PHP-Abhängigkeitsmanager, installieren. Nach der Installation von Composer führen Sie den folgenden Befehl aus, um ein neues Projektgerüst zu erstellen.

composer create-project --prefer-dist cakephp/app:~5.0 my_app

Der Befehl lädt CakePHP und seine Abhängigkeiten in einen Ordner namens „my_app“ herunter. Anschließend können Sie den integrierten Server starten mit bin/cake server Öffnen Sie http://localhost:8765 in Ihrem Browser. Beachten Sie, dass CakePHP 5 PHP 8.1 oder höher benötigt.

Geschichte von CakePHP

In diesem CakePHP-Tutorial behandeln wir die Geschichte des CakePHP-Frameworks:

Jahr Milestone
2005 CakePHP wurde am 15. April 2005 von Michal Tatarynowicz entwickelt.
2005 CakePHP hat es unter der MIT-Lizenz veröffentlicht und der Entwicklergemeinschaft zugänglich gemacht.
2005 Larry E Masters übernahm die Leitung des Entwicklers.
2006 Version 1.0 wurde veröffentlicht.
2011 Version 2 wurde veröffentlicht.
2014 Version 3 wurde veröffentlicht, eine vollständige Überarbeitung der früheren Versionen.
2016 Version 3.3 von CakePHP wurde mit vielen erweiterten Funktionen veröffentlicht.
2019 Version 4.0 wurde veröffentlicht und modernisierte das Framework.
2023 CakePHP 5.0 wurde veröffentlicht und erforderte PHP 8.1 oder höher. Die aktuelle Version (Stand 2026) ist CakePHP 5.3.x.

Funktionen von CakePHP

Hier sind wichtige Funktionen von CakePHP.

  • Aktive, freundliche Community
  • MVC-Architektur
  • Eingebaute Validierung
  • Funktioniert von jedem beliebigen Website-Verzeichnis aus, mit oder ohne jegliche Apache-Konfiguration.
  • Template-Engine
  • Caching-Operationen
  • Einfache CRUD-Datenbankinteraktionen
  • Verarbeitung von Komponenten wie E-Mail, Cookie, Sicherheit, Sitzung und Anfrage
  • Hilfen anzeigen für JavaSkript, AjaxHTML-Formulare und mehr

CakePHP-Ordnerstruktur

In diesem Tutorial zum CakePHP-Framework lernen wir nun die Ordnerstruktur von CakePHP kennen.

Nachfolgend finden Sie eine Ordnerstruktur von CakePHP:

Mappe Beschreibung
Tests Dieser Ordner enthält Testfälle für Ihre Anwendung.
Tmp Im Ordner „tmp“ werden temporäre Daten gespeichert.
Verkäufer In diesem Ordner werden CakePHP und andere Anwendungsabhängigkeiten installiert.
Webroot Im Webroot werden alle Dateien gespeichert, die öffentlich zugänglich sein sollen.
Kasten Der Ordner „bin“ enthält die ausführbaren Dateien der Cake-Konsole.
Logs Es enthält Ihre Protokolldateien, die von Ihrer Protokollkonfiguration abhängen.
Config Im Ordner „config“ werden die von CakePHP verwendeten Konfigurationsdateien gespeichert.
Plugins Hier werden die von Ihrer Anwendung verwendeten Plugins gespeichert.
Src Es enthält den Code für Ihre Anwendung, wie z. B. Controller, Entitäten und Verhaltensweisen. Locale speichert String-Dateien für die Internationalisierung, und Model enthält die Tabellen, Entitäten und Verhaltensweisen Ihrer Anwendung.

Konfiguration von CakePHP

CakePHP wird standardmäßig mit einer einzigen Konfigurationsdatei geliefert. Außerdem können Sie es entsprechend Ihren Anforderungen ändern. Zu diesem Zweck gibt es einen Ordner namens „config“.

Variablennamen Beschreibung
Debuggen Ermöglicht Ihnen, die Debug-Ausgabe von CakePHP zu ändern.
App Namespace Hilft Ihnen dabei, die App-Klassen zu finden.
App.baseUrl Entfernen Sie die Kommentarfunktion für dieses Schlüsselwort, wenn Sie Apaches mod_rewrite nicht mit CakePHP verwenden möchten.
App-Kodierung Ermöglicht es Ihnen, die Kodierung Ihrer Anwendung festzulegen.
App.base Es handelt sich um das Basisverzeichnis, in dem sich die App befindet. Falls dieser Wert „false“ ist, wird er automatisch erkannt.
App.fullBaseUrl Vollständiger qualifizierter Domainname.
App.webroot Es handelt sich um das Webroot-Verzeichnis.
App.wwwRoot Der Dateipfad zum Webroot.
App.jsBaseUrl Pfad zum öffentlichen js-Verzeichnis.
App-Pfade Konfigurieren Sie Pfade für nicht klassenbasierte Ressourcen.
App.cssBaseUrl Es handelt sich um den Webpfad zum öffentlichen CSS-Verzeichnis unter webroot.
Sicherheitssalz Es handelt sich um eine zufällige Zeichenfolge, die beim Hashing verwendet wird.
Asset.timestamp Diese Variable fügt einen Zeitstempel hinzu, wenn die entsprechenden Hilfsfunktionen verwendet werden.

Cake-PHP-Namenskonventionen

Cake folgt dem Prinzip „Konvention vor Konfiguration“. Die Namenskonvention ermöglicht die Organisation der Funktionsweise der Webanwendung. Bei dieser Methode müssen mehrere Wörter im Dateinamen durch „_“ getrennt werden, während Klassennamen in CamelCase geschrieben werden.

Die MVC-Teile müssen der unten angegebenen Syntax entsprechen:

Dateiname Klassenname Basisklassenname Standort
Modell Singularform des Tabellennamens mit der Dateiendung .php, z. B. order.php Der Dateiname in CamelCase, z. B.: Order AppModell /app/models
Controller tablename_controller mit der Dateiendung .php, z. B. orders_controller.php Der Tabellenname wird mit „Controller“ ergänzt, z. B.: OrdersController AppController /app/controllers
Ansehen Der Aktionsname im Controller mit der Erweiterung .ctp, z. B. add.ctp Keine Klassen; eine Ansicht enthält HTML-Tags und PHP. /app/views/controller name

Datenbankkonfiguration

CakePHP ermöglicht es Ihnen, die Datenbank in der config/app.php Die Datei stellt eine Standardverbindung mit vorgegebenen Parametern bereit, die Sie nach Ihren Wünschen anpassen können.

Nachfolgend sind wichtige Parameter aufgeführt:

Parameter Beschreibung
Port (optional) Der TCP-Port oder Unix-Socket, der für die Verbindung zum Server verwendet wird.
Zeitzone Die festzulegende Serverzeitzone.
Schema Es hilft Ihnen bei der Angabe, welches Schema Sie verwenden können.
unix_socket Wird von Treibern verwendet, um Verbindungen über Unix-Socket-Dateien herzustellen.
ssl_key Es handelt sich um den Dateipfad zur SSL-Schlüsseldatei.
ssl_cert Es handelt sich um den Dateipfad zur SSL-Zertifikatsdatei.
ssl_ca Es handelt sich um den Dateipfad zur SSL-Zertifizierungsstelle.
Log Dieser Begriff hilft Ihnen bei der Abfrageprotokollierung.
Drin Eine Liste von Abfragen, die bei jedem Verbindungsaufbau an den Datenbankserver gesendet werden sollen.
Angebotsbezeichner Auf „true“ setzen, wenn Sie reservierte Wörter oder Sonderzeichen verwenden möchten.

Wie funktioniert MVC in CakePHP?

In diesem CakePHP-Framework-Tutorial lernen wir nun, wie das MVC-Modell in CakePHP funktioniert.

Es handelt sich um eine dynamische Methode zum Aufbau des Kernmechanismus einer Webanwendung. Modell, Ansicht und Controller sind voneinander getrennt.

MVC-Architektur in CakePHP
MVC-Architektur in CakePHP

CakePHP unterteilt die Operationen in drei Teile:

  • Modelle: Wird für alle Datenbankinteraktionen verwendet.
  • Ansichten: Wird für alle Ausgaben und Anzeigen verwendet.
  • Controller: Werden zur Steuerung des Anwendungsablaufs verwendet.

Hier sind die Schritte zur Verwendung der MVC-Architektur in CakePHP:

Schritt 1) Der Client bzw. Benutzer interagiert mit der Ansicht.

Schritt 2) Die Ansicht benachrichtigt den Controller über das jeweilige Ereignis.

Schritt 3) Der Controller sendet eine Datenbankanfrage an das Modell und aktualisiert das Modell.

Schritt 4) Das Modell signalisiert der Ansicht, dass es sich geändert hat.

Schritt 5) Die Ansicht empfängt die Modelldaten und aktualisiert sich entsprechend den empfangenen Daten.

Warum MVC verwenden?

  • CakePHP MVC hilft Ihnen dabei, Geschäftslogik von Präsentation und Datenabruf zu trennen.
  • Eine Site ist in logische Abschnitte unterteilt, die Sie mit einem bestimmten Controller steuern können.
  • Beim Testen und Debuggen einer Anwendung kann jeder Entwickler Fehler finden und beheben, ohne über vollständige Details des Codes zu verfügen.

Nachteile der Verwendung des CakePHP-Frameworks

  • Die Dokumentationsunterstützung von CakePHP ist nicht so umfassend, wie sie sein sollte.
  • Um CakePHP zu verwenden, muss der Entwickler die Standardrouten für die Erstellung komplexer Anwendungen aktualisieren. URLs, was im Vergleich zu einigen anderen PHP-Frameworks mehr Arbeit bedeutet.
  • CakePHP verwendet im Vergleich zu anderen Frameworks ein unidirektionales Routing.
  • PHP lernen Frameworks sind für Anfänger nicht immer einfach.
  • Ein weiterer Nachteil im Vergleich zu Frameworks wie Ruby on Rails ist das unidirektionale Routing.

Häufig gestellte Fragen

Ja, für die Wartung bestehender CakePHP-Projekte und für Teams, die den konventionellen Ansatz gegenüber der Konfiguration schätzen. Laravel und Symfony haben zwar größere Communitys, aber CakePHP 5 wird aktiv weiterentwickelt und bleibt ein solides, produktives Framework.

Beide sind MVC-PHP-Frameworks. Laravel bietet ein größeres Ökosystem, eine ausdrucksstarke Syntax und Eloquent ORM. CakePHP setzt auf strikte Konventionen und schnelles Scaffolding mit weniger Konfiguration. Laravel ist beliebter; mit CakePHP lässt sich eine konventionelle Anwendung unter Umständen schneller erstellen.

CakePHP 5, die aktuelle Hauptversion, benötigt PHP 8.1 oder höher. Die ältere Version CakePHP 4 unterstützte PHP 7.4 und höher, nähert sich aber dem Ende ihres Lebenszyklus. Daher sollten neue Projekte auf CakePHP 5 mit einer aktuellen PHP-Version setzen.

Ja. KI kann die Migration, Entität, Tabelle, den Controller und die Vorlagen für eine CRUD-Ressource gemäß den CakePHP-Konventionen generieren und die Bake-Konsolenbefehle erklären. RevSehen Sie sich die Validierungsregeln an und testen Sie jede Aktion.

Ja. KI kann veraltete Methoden, aktualisierte Namensräume und Signaturänderungen erkennen und schrittweise Alternativen vorschlagen. Da Migrationen umfangreich sind, sollten Sie schrittweise aktualisieren und die Testsuite nach jeder Änderung ausführen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: