Teil 2: Framework-Reviews
Teil 2: Framework-Reviews
Im ersten Teil der Serie wurde geklärt, was Frameworks sind, wann man sie überhaupt benutzt, wer und wann man sie einsetzen sollte. Nachdem bereits Agavi und CakePHP vorgestellt wurden, geht es nun weiter mit den folgenden PHP-Frameworks: Codelgniter, Drupal, Fat Free, FuelPHP, Gyroscope, Jamroom, Kajona und Laravel.
Wenn Sie den ersten Teil dieses Artikels gelesen haben, sollten Sie schon beantworten können, wenn ein Kollege sie fragt, was ein Framework ist und warum es in PHP so viele davon gibt.
Teil zwei richtet sich ebenso an die Neulinge in diesem Bereich sowie an die, die ihre Webentwicklungsfähigkeiten erweitern möchten. Gleichzeitig richtet sich dieser Beitrag an alle Veteranen, die sich einen Überblick über die große Auswahl an PHP-Frameworks verschaffen wollen.
Nachfolgend finden Sie einige andere Framework-Reviews, damit Sie sich entscheiden können, welches Sie als nächstes verwenden möchten.
Viel Spaß!
An dieser Stelle muss ich ehrlich sein, Codelgniter war das erste Framework, das ich benutzt habe. Wie sagt man so schön: Die erste große Liebe deines Lebens wirst du nie vergessen.
Als ich zum ersten Mal in eine MVC-Umgebung von PHP-Entwicklern, die andere Frameworks benutzt haben, eingeführt wurde, war es ein Kampf zu verstehen, wo der Code hingehört und warum der zusätzliche Aufwand notwendig war, PHP-, MySQL- und HTML-Seiten in verschiedenen Teilen des Projektordners anzuordnen.
Dann habe ich das PHP-Framework Codelgniter kennengelernt – genauer gesagt: die ersten vier bis fünf Seiten des Tutorials. Daraufhin wurde mir einiges klarer und nach ein paar Stunden konnte ich Funktionen wieder herstellen, die den Code richtig unterteilen. Das half mir sehr, als ich fortgeschrittenere Frameworks kennenlernte.
Codelgniter ist ein altes Framework, das ursprünglich 2006 veröffentlicht wurde. Seit es von den Jungs des British Columbia Institute of Technology übernommen wurde, wird es immer noch häufig aktualisiert.
Zum Zeitpunkt meines Schreibens wurde die letzte Version 3.1.8 veröffentlicht (Ende März 2018).
Zu den wichtigsten Eigenschaften des Frameworks zählen die Leichtigkeit (Einfachheit/Benutzerfreundlichkeit) und die Geschwindigkeit, mit der Daten verarbeitet werden. Deshalb zählt Rasmus Lerdorf [Anm. d. Red: Erfinder von PHP] dieses Framework als seinen Favoriten.
Codelgniter ist das Framework, das am wenigsten, von den in diesem Beitrag beschriebenen, wie ein Framework aussieht.
Wie auch die anderen PHP-Frameworks, hat Codelgniter eine klare und leicht verständliche Datenstruktur sowie eine sehr detaillierte Dokumentation. Das Framework wird noch von vielen Anwendern und Unternehmen verwendet. Dadurch wird es immer noch unterstützt.
Es ist definitiv die richtige Wahl, wenn Sie sich bereit fühlen und mit Vanilla PHP genügend Erfahrung gesammelt haben.
Vertrauen Sie mir, mit diesem Framework sind Sie bereit, den Schritt weiter zu gehen.
Ein paar Informationen vorweg: Drupal ist kein echtes PHP-Framework. Es ist ein eher fortschrittliches CMS oder noch besser, ein CMF (Content Management Framework). Es wurde in Belgien von Dries Buytaert kreiert, indem er ein Messaging-Board entwickelte, um mit seinen Freunden in Kontakt bleiben zu können.
Die erste Domain war drop.org. Aufgrund der schnell steigenden Popularität beschloss Buytaert im Januar 2001, nach der Namensänderung auf Drupal eine offizielle Webseite zu starten und den Namen auf Drupal zu ändern. Im Niederländischen bedeutet Drupal „Tropfen“ – daher auch das Logo.
Im Gegensatz zu anderen gängigen CMS auf PHP-Basis benötigt man für Durpal mehr Zeit, um es vollständig verstehen zu können. Die Lernkurve ist vergleichsweise groß. Einige Entwickler berichten aber, dass die Arbeit nach einer Weile sehr glatt lief.
Drupal läuft auf den meisten PHP-Servern wie Apache, Nginx und Microsoft IIS. Es unterstützt auch die wichtigsten Datenbanken wie MySQL, MariaDB, PostgreSQL, SQLite, Microsoft SQL Server, Oracle und MongoDB.
Der PHP-Code ist in Modulen angeordnet und kann, je nach Belieben des Benutzers, ein- und ausgeschaltet werden. Das Hauptmodul, Core genannt, ist das Herzstück des Frameworks und kann durch Extensions vergrößert werden. Diese steht auf drupal.org zu Verfügung.
Es sind mehr als 380.000 kostenlose Module verfügbar, sodass alles, was Sie benötigen, bereits vorhanden ist. Neben dem Backend kann auch das Fronend verbessert werden. Außerdem gibt es mehrere Module und Themes, die aktiviert werden können.
Mindestens 2,3 Prozent aller Webseiten im Internet basieren auf Drupal. Der Grund für diesen Erfolg liegt in einigen wenigen Merkmalen. Zum einen in der Zuverlässigkeit, denn in den letzten fast 20 Jahren seit Gründungszeitpunkt wurde ein robustes und sicheres Produkt entwickelt. Das Framework eignet sich zudem für eine Vielzahl von unterschiedlichen Projekten wie Webseiten, Blogs und Foren bis hin zu e-Commerce und sozialen Netzwerken. Zahlreiche Projekte können durch das hinzufügen notwendiger Module skaliert werden.
Außerdem gibt es eine ständig wachsende Community, die täglich Tonnen an Ressourcen erstellt und einsetzt.
Abschließend sei gesagt, dass es sich bei Drupal um ein sehr gutes CMS handelt. Sollten Sie Ihre Zeit in dieses Framework investieren, wird es gut investierte Zeit sein.
Fat-Free ist ein Micro-Framework, das von Bong Costa, einem philippinischen Webentwickler und Berater entwickelt wurde. Ein Micro-Framework zeichnet sich durch seine Größe aus. Es besteht nur aus dem absoluten Minimum an Code, der es Ihrem Projekt ermöglicht, ohne weitere unnötige Strukturen zu funktionieren. Die Verwendung dieser Struktur hat mehrere Vorteile: Das Gewicht des Projekts liegt bei weniger als 55kb – Fat-Free. Zusätzlich braucht der Entwickler keine Zeit zu verschwenden, um zu lernen, wie die Dinge funktionieren, sondern kann den Fokus direkt auf den Code lenken.
Fat-Free erfordert PHP 5.3 oder höher und unterstützt sowohl SQL- als auch NoSQL-Datenbanken und hat ein integriertes ORM. Zu den wichtigsten Funktionen gehört das Routing und eine gute Template-Engine, die mit den Views verbunden ist.
Auch wenn es gute Gründe gibt, ein Micro-Framework zu verwenden, sollten Sie bedenken, dass diese Struktur auch als Einschränkung angesehen werden kann. Beispielsweise wenn das Projekt skaliert werden muss oder wenn mehr als ein Web-Entwickler daran arbeitet. Eine weitere kleine Einschränkung bring Fat-Free mit: Das Framework hat keine definierte Struktur, sodass Sie es nach Ihren Bedürfnissen konfigurieren müssen, was zu Beginn recht kompliziert sein kann.
Eines der (meiner Meinung nach) interessantesten verfügbaren PHP-Frameworks ist Fuel. Es wurde von mehreren Webentwicklern über Jahre hinweg mit viel Mühe entwickelt – unter anderem von Dan Horrigan und Philip Sturgeon (beide bekannt für ihre Mitarbeiter an Codelgniter). Dieses Framework scheint eine gute Mischung aus Codelgniter 3.x und Kohana 2.x zu sein: mit den besten Teilen von beiden, die verbessert wurden. Das Ergebnis dieser Kombination ist eine schnelle Struktur, mit der man arbeiten kann. Es wurde entwickelt, um die Prinzipien des hierarchischen Model View Controllers vollständig zu unterstützen. Das bedeutet, dass der ausgewählte Code auf mehreren Seiten im gesamten Projekt verwendet werden kann, beispielsweise bei einem Warenkorb und bei Blogposts.
Nicht zu vergessen ist das Präsentationsmodell, auch ViewModels genannt. Es fügt eine weitere Ebene zwischen den Views und den Controllern hinzu. Die Idee der Dateistruktur von FuelPHP wurde von Kohana kopiert und eine sinnvolle Verwendung von Namespaces und Autoload integriert. Der Autoload ermöglicht es, die Klassen deutlich schneller aufzurufen als bei Codelgniter und Kohana – aus dessen Mitte das Framework entsprungen ist.
Das Framework brachte zwei vorinstallierte Pakete mit, ActiveRecord und Oil. Beim letzteren handelt es sich um ein sehr nützliches Kommandozeilenprogramm.
FuelPHP wurde von Personen entwickelt, die sicher wissen, was sie tun. Es bringt eines der besten Features von Kohana mit, die Dateistruktur, und kombiniert es mit Codelgniter, das (wie bereits gezeigt) seit Jahrzehnten ein Meisterwerk ist. Aber jetzt, mit der Veröffentlichung von PHP 7 zeigt sich das Alter des Frameworks. Ein Nachteil des Frameworkes ist beispielsweise, dass die Community nie so stark gewachsen ist, sodass es für Entwickler sehr schwierig ist, Support und Antworten auf offene Fragen zu bekommen. Ich habe dem Erfinder Phil Sturgeon via E-Mail ein paar Fragen gestellt. Er war so freundlich mir zu antworten. Er sagte, dass der Höhepunkt der Bemühungen des Entwicklerteams in den Jahren 2011/2012 lag. Das Projekt wurde im Jahr 2015 offiziell abgebrochen, der Code ist online allerdings noch verfügbar. Phil Sturgeon sendete mir einen Link zu einem Blog-Post, den er im Januar 2011 zur Vorstellung von Fuel-PHP geschrieben hat.
Ich habe die meiner Meinung nach wichtigsten Informationen wiedergegeben. Falls Sie den Beitrag überprüfen wollen, können Sie dies gerne anhand des Originalartikels von Phil Sturgeon tun. Eine weitere Referenz, die er mir geschickt hat, war ein Blogbeitrag von Dwayne Charrington, in welchem er die Hauptmerkmale von FuelPHP und Codelgniter sorgfältig vergleicht. Ich fand die Beiträge wirklich interessant und rate Ihnen, einen Blick darauf zu werfen.
Als ich mich mit Phil unterhalten habe, war er gerade im Urlaub, was ihn aber nicht davon abhielt mir eine Liste mit mehreren Projekten zukommen zu lassen, an denen er gerade arbeitet. Hauptsächlich arbeitet er bei Wework, einem in New York ansässigen Unternehmen. Zu seinen Projekten gehören unter anderem:
Auf GitHub finden Sie die entsprechenden Repositories zu allen genannten Projekten. Phil entwickelt Tools, um Anwendern bei API-Spezifikationen und API-Interaktionen im Allgemeinen zu helfen. Auf dieser Webseite finden Sie mehr Informationen.
Ein weiteres faszinierendes Framework – zumindest in seiner Zusammensetzung – ist Gyroscope. Es wurde von Antradar entwickelt und zum ersten Mal vor über neun Jahren veröffentlicht. Es unterstützt PHP 5.4 und neuere Versionen. Ein Highlight ist die Größe des Frameworks, die weniger als 200 Kilobyte beträgt, wodurch seine Geschwindigkeit herausragend ist. Im Gegensatz zu den bisher betrachteten Frameworks verwendet Gyroscope die LCHH-Architektur und nicht das populärere MCV. In dieser Architektur wird ein div-Tag mit einer eindeutigen ID mit zuvor ausgewählten Daten gefüllt. Diese Daten rufen den Client auf, der einen AJAX-Request an den Server sendet. PHP erledigt seine Aufgaben wie Erstellen, Löschen usw. und aktualisiert die View. Dadurch gleicht der Pfad einem HTTP-Request, was für die Performance sowie das Debugging gut ist.
This Whitepaper contains an exclusive selection of PHP knowledge on over 40 pages for you to discover. Read articles from our experts on Laravel 10, CakePHP 5, Shopware 6, Clean Code, Single Page Applications with PHP and much more!
Download it now and learn more about the exciting developments in the PHP world!
Ein Problem, auf das Sie stoßen könnten, wenn Sie sich für die Verwendung des Frameworks Gyroscope entscheiden, ist, dass es keinen oder nur wenig Support gibt. Die Dokumentationen auf der offiziellen Webseite sind veraltet und die Community ist nie wirklich gewachsen. Wenn Sie tiefer in die PHP-Welt eindringen und mehr über LCHH erfahren möchten, geben Sie dem ruhig eine Chance. Gleichzeitig sollten Sie sich bewusst sein, dass es, wie Sie diesem Artikel entnehmen können, fortgeschrittenere Optionen gibt, die man wählen kann.
Nach der Veröffentlichung dieses Beitrags, habe ich eine E-Mail von Schien Dong, dem Erfinder dieses Frameworks erhalten. Er stellte sich als erstaunlich nette Person heraus und schlug vor, weitere Informationen über das Framework zur Verfügung zu stellen:
„The data flow in Gyroscope, due to the use of LCHH, is much simpler than other conventional frameworks.In addition, the JavaScript coding style is not as convoluted as many of the „modern standards“. Unfortunately,this makes the framework less „popular“ because many developers want to cultivate reusable skills from one framework and jump on to another. Employability seems to be their primary concern. For business owners who use Gyroscope applications, it’s a very different story. Gyroscope is at a unique position to deliver the unmatched performance, delivery timeframe and a specialized UI that prevents bad data entry. That leaves yet another segment of developers who really care about the end product and the fact that they can develop and maintain the code base with relative ease, and not having to always pick up new tools just to stay in stream.“
Das Framework Jamroom wurde im Juli 2003 veröffentlicht. Es handelt sich um ein CMS. Die aktuelle sechste Version wurde von Talldude Networks entwickelt und kommt mit einer Mozilla Public License. Dieses Framework ist ein vollkommen anderes Produkt im Vergleich zu den anderen, die ich bereits erwähnt habe. Es besteht aus einer Modularchitektur, die es der Struktur ermöglicht, ihre Funktionalität zu erhöhen und zu verringern. Der andere Teil von Jamroom sind Skins, die es ermöglichen, Änderungen der Funktionen und des Aussehens der Webseite vorzunehmen. Alles in diesem Framework ist entweder ein Modul oder ein Skin.
Rückblickend ist auffällig, dass es bis zu seiner Versionsnummer 5 auf Flash ausgeführt wurde, was einige Probleme mit der responsiven Darstellung auf Mobilgeräten mit sich brachte. Heute ist dieses Problem erfolgreich behoben. Alle hochgeladenen Multimedia-Daten werden konvertiert und stehen in verschiedenen Formaten zur Verfügung.
Kajona ist ein weiteres Content Management Framework. Es handelt sich um ein LGPL-lizensiertes Projekt, was bedeutet, dass externe Entwickler den Code durch hinzufügen und verbessern von Implementierungen und Funktionen erweitern können. Kajona wurde 2004 aus mehreren Skripts konzipiert. Die zweite Version wurde 2005 bereitgestellt, unmittelbar gefolgt von Version 2.1 im Jahr 2006. Aktuell ist dieses CMS ein solides Framework, was in seiner sechsten Version vorliegt. Das System ist in zwei Hauptsektoren unterteilt: Das Backend ist der Teil, der zur Pflege der Webseite verwendet wird und das Portal, das zur Darstellung der Inhalte dient. Dieses Portal verfügt über eine integrierte seiteninterne Bearbeitungsfunktionalität. Fahren Sie mir der Maus über ein editierbares Element, ist es möglich, seinen Inhalt zu aktualisieren. Das Ergebnis wird zudem sofort sichtbar.
Aus Sicht eines Webentwicklers sieht die Architektur wie ein normales MVC aus, wobei sich die drei Schichten gut voneinander unterscheiden. Kajona untersützt MySQL, MariaDB, PostgreSQL, Oracle und SQLite. Es bietet auch eine Template-Engine, um den Inhalt im Frontend darzustellen. Zusammenfassend lässt sich sagen, dass es sich um ein sehr solides CMS handelt, das so aufgebaut ist, dass sein Code auf eine sehr reibungslose Weise optimiert und bearbeitet werden kann. Es ist nicht Mainstream, also werden Sie nicht viel Untersützung finden. Allerdings bringt es eine gute Dokumentation mit. Wenn Sie ein CMS aber nicht WordPress verwenden wollen, lohnt es sich, einen Blick auf Kajona zu werfen.
Ich habe dieses Framework bereits erwähnt, als ich FuelPHP weiter oben beschrieben habe. Kohana war, ja, ich schreibe „war“, ein sehr gutes aber sehr unglückliches Framework. Seine Entwicklung begann Ende Mai 2007, nach dem Plan einiger Codelgniter-Mitglieder, unter dem Namen BlueFlame. Die erste offizielle Version wurde ein paar Monate später ohne jegliche Dokumentation veröffentlicht. Nach mehrmaliger Überwerfung des internen Teams wurde die zweite Version im November desselben Jahres veröffentlicht. Damals wurde es in PHP 5.0 geschrieben. Die dritte und letzte Version des PHP-Frameworks wurde offiziell am 9. September 2009 veröffentlicht. Von diesem Monat an entwickelte es sich sehr langsam, bis zum 25. Juli 2016, als die letzte Version 3.3.6 erschien. Am 1. Juli 2017 wurde Kohana offiziell als veraltet erklärt. Daraufhin wurden einige Maßnahmen zur Wiederbelebung ergriffen. Der Nachfolger ist Koseven.
Ich habe mit Chema Garrido gesprochen, dem Vorsitzenden (Frontman) von Koseven. Er sagte, dass das Framework ein kompatibler Ersatz für Kohana ist, welches es Nutzern – die nicht migrieren wollen – ermöglicht, die Anwendung fehlerfrei und dank Post-Security-Fixes auf dem neuen Stand zu halten sowie mit den neuesten Versionen von PHP kompatibel zu sein. Chema Garrida riet, ein moderneres Produkt zu verwenden. Es ist, wie ich, ein Fan von Laravel, worüber Sie im nächsten Abschnitt mehr erfahren.
Das Framework Laravel ist das Prunkstück der Liste. Aus meiner Sicht ist Laravel zweifellos das interessanteste Framework. Sein Wachstum und die Liste der Features sind einfach unglaublich. Laravels erste Veröffentlichung im Juni 2011 wurde von Taylor Otwell als Experiment zu Verbesserung von Codelgniter entwickelt. Es war kein echtes MCV, da es keine Controller gab, sondern das Framework hatte Dutzende von interen Funktionen wie Authentifizierung, Sessions, Routing und Lokalisierung. Die zweite Version von Laravel brachte mehrere Verbesserungen und unterstützte endlich auch Controller, IoC-Prinzipien und Blade. Blade ist ein Templatingsystem, das es dem Entwickler ermöglicht, PHP besser in die View zu integrieren. Laravel 3 wurde im Februar 2012 veröffentlicht, was man in gewisser Weise als kleinen Durchbruch bezeichnen könnte. Zu den Hauptmerkmalen zählten: Artisan, ein brandneues CLI (Command Line Interface), Datenbankmigration, Event Handling und Bundles (ein Packagingsystem). Im Mai 2013 veröffentlichte Otwell Illuminate, was Spitzname für Laravel 4. Nach den erfolgreichen Jahren zuvor, wurde das Framework komplett neu geschrieben und als Paket über den Composer verteilt. Mit der vierten Version konnten die Laravel-Entwickler beweisen, dass das Projekt nun an dem Punkt angekommen ist, um Weltklasse zu sein.
Unter den neuen Funktionen möchte ich das Datenbank-Seeding hervorheben, das es ermöglicht, die Datenbank von Anfang an zu füllen. Außerdem bemerkenswert ist die Unterstützung für verschiedene Arten von E-Mails, Soft Deletion und Massage-Queue. Ganz zu schweigen von der Veröffentlichung eines Release Schedule für die Minor-Version. Im Grunde genommen, ab Version 4 wird es schätzungsweise alle sechs Monate eine neue Minor-Version geben. Laravel 5 erschien im März 2015 und nutzt kaum die bisher bekannten Package Methods. Diese Version enthält ein Flysystem für den Remote Storage und Elixir, das Package Assets verwaltet sowie Socialite für die Authentifizierung und Scheduler für…
Wissen Sie was?
Das Planen von Tasks.
Zum Zeitpunkt des Schreibens dieses Artikels war Laravel bereits das beliebteste PHP-Framework.
LARACON VIDEO https://www.youtube.com/watch?v=pLcM3mpZSV0
Die erste Version des Long Time Supports (LTS) war Laravel 5.1. Der Plan, die Sicherheit und Fehlerbehebung für zwei bzw. drei Jahre zu unterstützend, wurde dann mit Version 5.5 wieder aufgenommen. Zum Zeitpunkt des Schreibens des Artikels befindet sich Laravel in Version 5.6, die offiziell am 7. Februar 2018 veröffentlicht wurde.
Neben der unglaublichen hohen Qualität und der harten Arbeit der Laravel-Entwickler, denke ich, dass Laravel die Art und Weise, wie Webentwickler schreiben und über ihren Job nachdenken, verändert hat. Zum Beispiel die Verwendung eines Features wie Eloquent ORM (Active Record), das Datenbanktabellen als Klassen präsentiert, macht den Entwicklungsprozess und damit das Leben der Entwickler so einfach. Die Laracon, ob in der US-amerikanischen oder europäischen Version, zu besuchen, ist etwas, wovon die meisten Entwickler mindestens einmal geträumt haben. Laravel News wird Sie und Ihre Kollege immer auf dem Laufenden halten, was rund um das Framework passiert. Zu guter Letzt sei die Plattform Laracasts erwähnt, auf der Tausende und Abertausende von Minuten kostenloser Videos, bereitgestellt von dem unglaublichen Entwickler und ehemaligen Top-Mind von Evato tuts+, zur Verfügung stehen.
Wie sie sehen ist die Wahl von Laravel gleichzeitig eine Wahl des gesamten Ökosystems. Schließen Sie sich einer großen Familie an, einer riesen Gemeinschaft von Entwicklern, die, selbst wenn Sie es nicht wissen, Ihren Job im kommenden Jahr besser machen werden.
Fortsetzung folgt…
Dieser Beitrag ist der zweite aus dem Kindle-Buch „The Definitive Guide to your next PHP Framework“. Werfen Sie einen Blick auf den ersten Teil, der eine Einführung zu diesem Artikel bietet.
Jetzt sind Sie dran!
Ich hoffe der Vergleich meiner Frameworks hat Ihnen gefallen. doch welches PHP-Framework hat Sie am meisten fasziniert? Werden Sie eines der oben aufgeführten Möglichkeiten testen?
Zu den anderen Teilen der Reihe geht es hier lang:
Teil 1: PHP Frameworks – der ultimative Guide: Agavi & CakePHP
Teil 3: PHP-Frameworks – Der ultimative Guide: Pop PHP, Silex und SilverStripe
Teil 4: PHP-Frameworks – Der ultimative Guide: Symfony, TYPO3 Flow und Zend
Dieser Artikel erschien zuerst im Englischen, geschrieben von Nico Anastasio auf Anastsionico.uk.