Seit ca. einem Monat programmiere ich in meiner Freizeit ein freies CMS auf Basis von CakePHP 3 und Bootstrap 3. Beruflich arbeite ich mit VuFind, einer OpenSource-Software, die auf Zend Framework 2 basiert. In diesem Beitrag möchte ich meine Erfahrungen mit den beiden PHP Frameworks gegeneinander aufwiegen.

Zend ist das bekannteste und mächtigste PHP Framework. Leider ist die Einarbeitung auch nicht ganz ohne. Man braucht fast zwingend Literatur. Bei CakePHP ist das anders. Soweit man bereits mit dem MVC-Prinzip vertraut ist, klappt fast alles Out-of-the.Box. Komplizierte Sachen wie die Erzeugung von Model und Entity-Klassen, die Datenbank-Tabellen und Zeilen abbilden, ist mit CakePHP ein Kinderspiel. Es ist keinerlei Konfiguration nötig. Man muss sich lediglich an die Konventionen halten. Das gilt auch für Foreign Keys.

CakePHP bringt das Prinzip, das alles einfach funktioniert zur Perfektion. In Zend muss man immer alles erst konfigurieren, ganz egal ob Klassen, Services oder Factories. Solange etwas nicht in der Konfiguration korrekt angegeben ist, funktioniert bei Zend nichts. Das mag performancetechnisch besser sein, aber es ist für Einsteiger extrem hinderlich und behindert auch bei Fortgeschrittenen den Workflow.

Das Feature von CakePHP, welches mich letztendlich aber wirklich überzeugen konnte war der eingebaute Debugger und Webserver. Das Debugging von Webprojekten ist immer so eine Sache. Man braucht auf dem Server xdebug, ein Port muss offen sein, die Firewall muss konfiguriert sein usw. Im Programmiereralltag funktioniert das häufig nicht reibungslos. Ganz anders CakePHP. Es liefert einen eigenen Webserver mit, der auf localhost:8765 läuft.

Den Server startet man ganz ohne Fummelei mit XAMPP mit

$ sh bin/cake server

Am unteren Bildschirmrand findet sich dann eine Leiste, über die man alle Variablen, SQL-Queries, Umgebungsvariablen und vieles mehr sehen kann. Also viel mehr als man mit XDebug sehen würde.

Auch die Fehlermeldungen von CakePHP sind durchgängig sehr hilfreich und geben konkrete Tipps (inkl. Codevorlage) was man tun muss. Zum Beispiel eine Action in einem bestimmten Controller anlegen.

Damit ist CakePHP für Einsteiger ideal, aber auch berufliche Programmierer wie ich profitieren stark von der Einfachheit. Man muss generell weniger Fehlermeldungen oder Tutorials googeln – auch weil die CakePHP Dokumentation einsame Spitze ist. Man kann das Cookbook sogar als PDF downloaden. Auch die Trennung der unterschiedlichen Versionen von CakePHP ist in der Dokumentation prima gelöst.

 Bei Github findet ihr Muffin, mein neu entwickeltes CMS System auf Basis von CakePHP 3. Natürlich ist alles noch im Aufbau, das Frontend ist aber für meine derzeitigen Bedürfnisse fast fertig. Was allerdings noch fehlt, ist das Backend.

Muffin soll ein CMS sein, das man im Gegensatz zu WordPress mit den gegebenen Programmierkenntnisse einfach anpassen kann.

Previous Post Next Post