© MIKHAIL GRACHIKOV/Shutterstock.com
Die Vor- und Nachteile des PHP Frameworks CakePHP

Backe, backe Kuchen


CakePHP ist in den Top Ten der populärsten PHP Frameworks [1] und unter den Top Five bei den Google-Trends-Suchanfragen [2]. Für die Programmierung eines Projekts kann es sich durchaus lohnen noch ein oder zwei weitere Frameworks zu benutzen – beispielweise CakePHP. Wir schauen auf die Vor- und Nachteile des Frameworks. Ich möchte hier keinen Vergleich zwischen CakePHP, Symfony und Laravel aufstellen, sondern lediglich einige Vor- und Nachteile von CakePHP aufzählen.

CakePHP wurde 2005 entwickelt und lehnte sich an Grundkonzepte von Ruby on Rails an, einem WebFramework basierend auf der Programmiersprache Ruby. Damals war es noch unter dem Namen Cake bekannt, hat sich aber nach einiger Zeit in zwei Lager aufgespalten und wurde später in CakePHP umbenannt. Heute wird es hauptsächlich von der Cake Software Foundation und GitHub-Supportern weiterentwickelt.

CakePHP gehört, anders als Symfony und Laravel, nicht zu den großen Playern am Markt, hält sich aber seit Jahren konstant auf den Plätzen 3 und 4 (Abb. 1) – zumindest was die Suchanfragen bei Google angeht [2].

hobert_cakePHP_1.tif_fmt1.jpgAbb. 1: CakePHP mit einem guten Ergebnis in den Google Trends [2]

Die Downloadzahlen der verschiedenen Frameworks beziehen sich auf Composer-Installationen von Packagist [3] und sind natürlich davon abhängig, wie lange das jeweilige Paket dort verfügbar ist. Dennoch spiegeln diese Zahlen die Popularität und den aktuellen Marktanteil von CakePHP wider (Tabelle 1).

Framework

Composer-Installationen

Laravel

67 137 599

Symfony

42 731 888

Zend

5 072 371

CakePHP

4 301 435

CodeIgniter

516 118

Tabelle 1: Packagist-Downloads [3] (Stand: Juli 2019)

Mit knapp unter 8 000 Sternen ist CakePHP auch auf GitHub ein beliebtes Repository. Mit der MIT-Lizenz geht CakePHP seit Jahren den richtigen Weg der Open-Source-Mentalität.

Sicherheit

CakePHP wirbt aktiv mit der Sicherheit der Applikation. Diese wird über die Securitykomponente (Security Component) gesteuert. Zu den Features gehören XSS-, CSRF- und SQL-Injection-Schutz sowie eine erhöhte Sicherheit bei der Formularvalidierung und -bearbeitung.

Zuletzt wurde im November 2017 eine SOS-(Secure-Open-Source-)Prüfung von Mozilla durchgeführt [4], um die aktuellen Maßnahmen auf Herz und Nieren zu testen. Nach dieser ausführlichen Prüfung wurden alle gefundenen Risiken in der Version 3.6.0 gefixt (aktuelle Version 3.8.1).

Konventionen

„We are big fans of convention over configuration“ [5]. Dieser Hinweis in der CakePHP-Dokumentation ist wichtig und ein großes Plus für das Framework. Der Einstieg mag hier etwas holprig wirken, aber wenn man erst einmal den Dreh raushat, geht alles wie von selbst.

Vom Entity-Klassennamen (Article – Singular) bis zur Controller-Klasse (ArticlesController – Plural) ist alles vorgegeben. Das führt manches Mal zu einer scheinbar endlosen Fehlersuche (gerade bei Relationen zwischen zwei Entitäten), aber sobald diese Konventionen einmal sitzen, sollte das Aufsetzen neuer Projekte ein Kinderspiel sein.

Installation

Die Hürde für ein Grundgerüst ist im Laufe der Jahre immer kleiner geworden. Musste man vor einigen Jahren noch Repositories pullen, ZIP-Dateien entpacken und Skripte ausführen, ist heutzutage Composer der Quasistandard. Auch CakePHP bietet seit Version 3.x dafür die schnelle Installation über Composer:

composer create-project --prefer-dist CakePHP/app my_first_CakePHP_project

Backe, backe Kuchen

Schnell mal ein Projekt aufsetzen und dem Kunden oder Product Owner etwas präsentieren – mit CakePHP kein Problem. Dank des CLI-Befehls bake ist ein vordefiniertes Model in nur wenigen Sekunden mit CRUD-Funktionen verfügbar und mit einigen Styleanpassungen sogar ansehnlich.

Dabei werden Model, View und Controller automatisch erzeugt. Eine Liste mit allen möglichen Befehlen erhält man mit bin/cake bake. Möchte man beispielsweise schnell ein CRUD-Backend für ein Projekt aufset...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang