Teil 1: Vorwort und Grundlagen

PHP Frameworks – der ultimative Guide: Agavi & CakePHP
Keine Kommentare

Stellen Sie sich vor, dass Sie einen einfachen Befehl auf ihrem Terminal eingeben und sehen, dass die Hälfte des benötigten Codes für ihre neue Web-Applikation bereits geschrieben ist. Das ist der große Vorteil an der Arbeit mit PHP-Frameworks! Heute werfen wir einen Blick auf Agavi und CakePHP.

Im unteren Teil gebe ich eine Übersicht über die 24 besten PHP Frameworks, mit der Sie genug Information erhalten, um ihre Arbeit leichter und effizienter zu machen. Legen wir los!

Code zu schreiben ist faszinierend.
Das Schreiben von lesbarem Code ist noch faszinierender.

Wann kann man beides auf einmal machen?

Das ist dann der Fall, wenn Sie stundenlang programmieren können und sich trotzdem so erfrischt fühlen, wie zu dem Zeitpunkt, als der erste Kaffee des Tages seine Wirkung entfaltet hat. Und ich habe da etwas, mit dem Sie sich so fühlen werden.

Einführung: Was ist ein Framework?

Fangen wir ganz von vorne an: „Was ist ein Framework?“ Indem wir das Wort „Framework“ aufteilen, erhalten wir die Wörter „Frame“ (Rahmen) und „Work“ (Arbeit).

Ein Rahmen. Denken Sie an den Rahmen eines Hauses, eine Struktur, in der alles andere gebaut wird und von dessen Form alle weiteren Arbeiten abhängig sind. Das gilt auch für einen Fotorahmen, der die Struktur definiert. Jedes eingefügte Foto muss die Größe des Rahmens haben.

Ein Framework ist einfach ein vordefiniertes Gerüst, in dem Sie Ihre Arbeit machen. Es ist eine Software, die grundlegende Funktionen anbietet und mit eigenem Code erweitert wird. Der Vorteil der Verwendung dieser Funktionen besteht darin, dass sie standardisiert und wiederverwendbar sind.

Tun Sie einfach mal so, als hätten Sie die letzte halbe Stunde damit verbracht, eine Lösung für ein Problem zu finden. Wenn Sie einen standardisierten Service nutzen, ist es sehr wahrscheinlich, dass jemand anders bereits auf das Problem gestoßen ist. Das bedeutet, dass die Möglichkeit besteht, dass es wahrscheinlich eine Lösung im Web gibt. Deswegen hat Stack Overflow mehr als eine Millionen Benutzern, mit einer weiteren Millionen Fragen, die mit PHP getagged wurden.

Warum sollte man PHP Frameworks nutzen?

Um diese Frage zu beantworten, muss ich näher auf das eingehen, was Frameworks machen. Jedes Projekt, das man durchführt, beginnt mit demselben Prozess. Wenn Sie so sind wie ich, dann haben Sie Ihre Checkliste und einen Bleistift neben dem Laptop parat und sind dazu bereit, den Entwicklungsprozess zu starten. Wenn das bei Ihnen nicht der Fall sein sollte, dann ist es sehr wahrscheinlich, dass Sie etwas wichtiges vergessen, das dann nachträglich eingefügt werden muss.

Frameworks ermöglichen es Ihnen einen klaren Kopf zu bewahren, weil Sie sich nicht um all das kümmern müssen und sich voll und ganz auf den Entwicklungsprozess fokussieren können, anstatt auf die Vorbereitungsphase. Warum sollten Sie sich über das Einrichten der Autorisierungen, Sessions oder über den zu schreiben Code, der vor Cross-Site Request Forgery schützt Gedanken machen, wenn Sie stattdessen auch mehr Zeit damit verbringen können, das zu tun, was Sie am liebsten machen. Ganz zu schweigen von der Zeit, die Sie sich sparen werden, wenn Sie diesen Code gebrauchsfertig vorfinden. Und wie wir alle wissen, ist Zeit Geld.

Seit dem erscheinen des ersten Frameworks hat sich die Liste der implementierten Features deutlich vergrößert. Framework-Entwickler verfügen nun über jahrelange Erfahrung auf ihrem Gebiet. Das hat sie dazu veranlasst, Verbesserungen vorzunehmen und die aktuelleren Sicherheitsstandards zu nutzen, wie ich oben erwähnt habe. Und nicht nur das, viele PHP Frameworks können über Composer installiert werden. In einigen anderen Fällen können Sie das Verzeichnis sogar einfach aus einem Git-Repository herunterladen und es ist einsatzbereit. Composer einzurichten, um notwendige Drittanbieter-Packages und Ressourcen zu beziehen, ist eine großartige Methode für die Erweiterung von Projekten und um sie besser skalierbar zu machen.

Der Code, der von der Mehrheit verwendet wird, baut auf dem Prinzip der Objektorientierung in PHP auf. Die Frameworks erstellen automatisch im Hintergrund Klassen und Objekte (und man muss sich nie wieder darum kümmern, Dateien aufzunehmen). Sie folgen auch dem MVC-Pattern, indem sie den Code in Model Views und Controller aufteilen.  PHP Frameworks machen das Arbeiten am Code leichter und steigern die Skalierbarkeit des Projekts.

Ein weiteres typisches Merkmal von PHP Frameworks ist die Art, wie sie Requests verarbeiten. Die Routing-Systeme von manchen der Frameworks sind tatsächlich sogar Kunstwerke. Sie erlauben Redirects und ein besseres SEO-Management, indem sie SEO-freundliche URLs erstellen.

Um nun die Frage zu beantworten, warum man PHP Frameworks verwenden sollte, müssen wir uns zunächst einige Fragen über das Projekt stellen, das erstellt werden soll:

  • Wie sehen die Anforderungen des Projekts aus?
  • Wird Ihr gewähltes Framework diesen Anforderungen auch gerecht?
  • Wissen Sie genug über das Framework, damit Sie Ihre gesetzten Ziele auch erreichen können?

Man muss sich klar machen, dass das Skelett schon einiges an Gewicht mitbringt, auch wenn man noch gar nicht mit der Arbeit begonnen hat. Wenn Sie also nur eine To-Do-Liste erstellen wollen, die Sie über Ihr Telefon nutzen wenn Sie das nächste Mal in den Supermarkt gehen, oder eine Portfolio-Seite haben möchten, die Ihre Fähigkeiten auf einem Digitalbildschirm auflistet, dann werden Sie nicht den ganzen eingebauten Kram benötigen. Der wäre dann eher ein Problem und würde die Leistung drücken, statt eine Lösung darzustellen.

In vielen Fällen kann ein PHP Framework nützlich sein, aber es ist nicht immer notwendig. Wenn die Erstellung Ihrer Applikationen einfach sein wird und es nicht zu viele Funktionen gibt, dann könnte es die richtige Entscheidung sein, das einfach selber zu erledigen. In diesem Video werden die 10 besten Frameworks aufgelistet (den Aussagen von Traversy Media nach) und ein Blick darauf lohnt sich.

Wann sollten Sie kein PHP Framework einsetzen?

Ein PHP Framework zu benutzen ist nicht immer ein Zuckerschlecken. Es gibt einige Nachteile, die Sie als Webentwickler verstehen müssen. Ein Framework ist eine externe Komponente und es wird von jemandem oder einem Team mit eigener Einstellung und Zielsetzung entwickelt. Und manchmal entspricht diese Zielsetzung nicht der, die Sie für Ihr Projekt benötigen. Rasmus Lerdorf, der Schöpfer von PHP, hat sich mehrmals dagegen ausgesprochen und auf alle Probleme hingewiesen, die sich aus der Verwendung dieser Frameworks ergeben.

Wie es bereits vorher erwähnt wurde, ist die Performance von Frameworks schlechter als die von Code, den Sie selber schreiben können. Das liegt daran, dass Frameworks über viele Funktionen verfügen, die die Mehrheit der Entwickler überzeugen müssen. Und das bedeutet, dass Frameworks verschiedene Probleme lösen, indem sie eine allgemeine Lösung anbieten.

Möglicherweise müssten Sie nur ein paar PHP-Funktionen einbauen. Stattdessen werden Sie sich mit einer Menge von Implementierungen konfrontiert sehen, die Sie nie verwenden und das verlangsamt die Ausführung Ihres Projekts.

Wer sollte Frameworks einsetzen?

Wir haben darüber gesprochen „wann“ ein Framework eingesetzt werden sollte. Jetzt ist es an der Zeit darüber zu sprechen „wer“ ein Framework einsetzen sollte. Und um das zu tun, werde ich ein bisschen von meiner eigenen Geschichte erzählen, die damit beginnt, dass ich JavaScript lernte, nachdem ich fließend HTML schreiben konnte. Doch nach weniger als zwei Wochen gab ich es bereits wieder auf und verbrachte die meiste Zeit damit in jQuery zu schreiben. jQuery ist eine Bibliothek, die es erlaubt in JavaScript zu programmieren, mit einer viel einfacheren Syntax. Es war leichter, schneller und es gab viele Tutorials und Plug-ins.

Nach einer kurzen Zeit musste ich einen Schritt zurück gehen und habe mir ein Buch über JavaScript gekauft, da es nun einige JavaScript-Frameworks gab, die nach und nach veröffentlicht wurden. Da waren Angular, Vue.js und React und täglich sind neue Sachen erschienen, die nicht mit jQuery liefen, sondern mit purem JavaScript.

Was ich daraus gelernt habe, ist, dass man so lange mit den Grundlagen arbeitet, wie es notwendig ist. PHP Frameworks verwenden oft Prinzipien, Designmuster, Unit-Tests, Container, Migrationen und vieles weitere Sachen, die ein Neuling nicht versteht. Sie müssen dafür zwar kein Experte sein, aber ein erfahrener PHP-Entwickler. Wenn Sie glauben, dass sie dafür bereit sind, dann müssen Sie sich etwas Zeit nehmen um das Framework, für das Sie sich entschieden haben, zu erlernen. Einige der Frameworks sind wirklich einfach zu erlernen, bei anderen ist die Lernkurve steiler. Nur nicht aufgeben! Es ist ganz normal, dass das alles in den ersten paar Stunden keinen Sinn ergibt. Arbeiten Sie einfach die Tutorials durch und suchen Sie nach den dazugehörigen Erklärungen online, dann werden Sie es schon lernen.

Jetzt sind Sie mit den grundlegenden Konzepten der Frameworkverwendung vertraut und können tiefer in das Thema eintauchen und sich die einzelnen Optionen genauer ansehen. Es ist wichtig, dass Sie das folgende Kapitel lesen, nachdem Sie analysiert haben, welches Problem Ihre Anwendung oder die Website, die Sie erstellen wollen, lösen muss.

Genug mit dem Vorwort, fangen wir an!

Agavi

Agavi wurde hauptsächlich von David Zulke entwickelt, hat aber noch 20 weitere Contributors, die an mehr als 60 Releases mitgewirkt haben. Agavi ist ein PHP Framework, das zwischen 2006 und 2009 am besten war. Es ist ein schnelles und schlankes Produkt, das für die Arbeit in einer PHP-5-Umgebung gedacht ist. Der Hauptfokus liegt auf einigen wenigen Features, die Ihnen als Entwickler die Freiheit geben, Ihr Projekt so zu gestalten, wie Sie es möchten. Es kann entweder über Composer installiert oder aus einem GitHub-Repository heruntergeladen werden. Dieses Framework kann für fast jedes Projekt benutzt werden, aber es wird eher für den Einsatz in langfristigen Projekten empfohlen, die über eine sehr große Codebasis verfügen. Es ist über ein  HTTP-Protokoll, SOAP und Commands aufrufbar.

Wenn Sie ein altes Projekt anpassen wollen, oder einfach ein bisschen in der Vergangenheit schwelgen möchten, dann bietet Agavi immer noch eine große Menge an Informationen und Tutorials auf seiner Webseite an, sowie API-Dokumente, FAQs und Blogeinträge.

David, den ich während des Schreibens interviewte, hat sich seine Leidenschaft für das Framework bewahrt. Er sagte, dass Agavi immer noch von Anwendern eingesetzt wird. Allerdings denkt er auch, dass die meisten von Ihnen Agavai im Lauf der Zeit stark modifiziert haben oder einige seiner Kernkonzepte (die sich insgesamt sehr gut gehalten haben) übernahmen und diese auf eine eigene IT-Lösung portiert haben, wie zum Beispiel Symfony. Er ist jetzt für die Wartung der PHP-Sprachunterstützung bei Heroku zuständig, sodass er nicht mehr wirklich mit Frameworks arbeitet oder große PHP Anwendungen schreibt. Stattdessen sorgt er dafür, dass seine Kunden genau das tun können!

Offizielle Webseite
GitHub Repository

CakePHP

CakePHP ist vielleicht eines der wichtigsten PHP-Frameworks. Seinen Ursprung hat es im April 2005, geschaffen von Michal Tatarynowicz, einem polnischen Entwickler, der das Projekt zuerst unter der MIT-Lizenz veröffentlichte und es auf den Namen Cake taufte. Ein anderer Programmierer übernahm CakePHP am Ende desselben Jahres, gründete schließlich die Cake Software Foundation und veröffentlichte im Mai 2006 die Version 1.0.

2018, nach all den Jahren, gilt CakePHP immer noch als eines der besten Frameworks und gehört zu den Top 5 in der Verwendung. Es vollzieht in vielerlei Hinsicht die Eigenschaften von Ruby on Rails nach und verwendet auch verschiedene Designmuster, das MVC-Prinzip, aktive Records und das Paradigma „Convention over Configuration“.

Ich möchte bei diesem Paradigma verweilen und dessen Stärke erläutern. Nachdem Sie als Entwickler die wenigen Konventionsregeln gelernt haben, z. B. eine Klasse auf eine bestimmte Weise aufzurufen oder den Namen eines fremden Feldes einer Tabelle mit „_id“ zu beenden, erzeugt das Backend des Frameworks alles von selbst. Das bedeutet, dass CakePHP ein komplettes C.R.U.D.-System und eine Beziehung in nur wenigen Sekunden erstellen kann, indem es den in der Datenbank angegebenen Namen verwendet. Ich glaube, dass wenn Sie ihre Fähigkeiten verbessern wollen und ein leichtes Framework ausprobieren möchten, dann sollten Sie mit diesem hier anfangen. Es verfügt über einige Features, die zu Beginn heimtückisch sein können, aber es ist leicht zu erlernen. Es gibt viel Unterstützung von der Community, hat über 7000 Sterne und 3000+ Forks auf GitHub, plus Forum und offizielle sowie inoffizielle Dokumente.

Vor kurzem veröffentlichten die Leute in CakePHP, die so hart wie eh und je arbeiten, die neuste Version 3.5, die ganz offiziell Red Velvet heißt. In diesem Jahr veranstalten sie auch eine Konferenz in Nashville TN. Wenn Sie also in den USA sind oder mehr über dieses Framework erfahren wollen und eine schöne Reise unternehmen möchten, was gäbe es für einen besseren Anlass als diesen?

Offizielle Webseite
GitHub Repository

Jetzt sind Sie am Zug. Ich hoffe, dass Sie Ihnen mein Framework-Vergleich gefallen hat.  Jetzt möchte ich folgendes von Ihnen erfahren:

Was war Ihr erstes PHP Framework?
Werden Sie eins der oben aufgeführten Frameworks ausprobieren?L
assen Sie es mich wissen, indem Sie einen Kommentar hinterlassen.

Dieser Artikel erschien zuerst im Englischen, geschrieben von Nico Anastasio auf Anastsionico.uk.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -