Teil 4: Das beste kommt zum Schluss?

PHP-Frameworks – Der ultimative Guide: Symfony, TYPO3 Flow und Zend
Keine Kommentare

Das ist der letzte Teil der Serie über PHP-Frameworks. Es werden Smart Framework, Symfony, TwistPHP, TYPO3 Flow, Yii und Zend vorgestellt.

Wir sind endlich da! Jetzt können Sie sich selbst als einen richtigen Meister-Jedi der PHP-Frameworks betrachten. Wenn Sie die vorherigen Teile verfolgt haben, haben Sie festgestellt, dass es mehrere verschiedene Arten von PHP-Anwendungen gibt, die den Entwicklungsprozess Ihrer Web-Projekte oder Webseiten beschleunigen können. Nachfolgenden finden Sie die letzten Elemente, die ich für die besten unter den 24 heute verfügbaren Frameworks halte.

Mein Ratschlag ist, noch mal alle Rezensionen in diesen Beiträgen durchzulesen uns sich klar zu machen, was Sie entwickeln möchten, um dann die perfekte Lösung für Ihr Projekt zu finden.

Beginnen wir:

Smart Framework

Es gibt nicht viele Informationen zu diesem Framework im Internet. Das Projekt wurde zwischen 2009 und 2011 von UNIX-World, einem Softwareunternehmen mit mehr als 15 Jahren Erfahrung im Web, gestartet. Seine erste Veröffentlichung ist auf Februar 2012 datiert, und es scheint oft aktualisiert zu werden. Im Moment ist 3.7.5 die aktuellste Version, die am 25. April 2018 veröffentlicht wurde. Wie bei einigen der bereits vorgestellten Projekte, ist es ein Open-Source-Produkt, BSD-lizenziert und es folgt der MVC-Architektur, indem es Multi-Tier und Middleware kombiniert.

Zu den wichtigsten Funktionen gehört eine breite Unterstützung verschiedener Typen von Datenbanken wie MySQL, SQLite, MongoDB, PostgreSql sowie mehrerer JavaScript-Komponenten, integrierte Map-Handler (Google Maps und Bing Maps) und Redis für das Caching.

Warum sollten Sie es anderen Frameworks vorziehen?

Nun, auf der offiziellen Webseite behauptet der Inhaber, dass dieses Framework um ein Vielfaches schneller ist als andere viel populärere Frameworks wie Zend und Laravel. Das könnte ein guter Grund sein, es auszuprobieren. Ein Nachteil ist, Sie müssen sich zu Beginn die Dokumentation ansehen, die in diesem Fall etwas unübersichtlich wirken kann.

Offizielle Webseite

GitHub Repository

Symfony

Das ist ein weiteres Mitglied des Top-Framework-Clubs. Symfony wurde 2005 von Fabien Potencies, CEO bei SensioLabs und Blackfire.io, gestartet. In der ersten Version unterstützte Symfony PHP 5.0 und nur ein paar Features, seitdem hat es an Popularität und Zuverlässigkeit zugenommen und ist heute unter den drei beliebtesten PHP-Frameworks nach Laravel und Codelgniter und das erste, das in Unternehmen verwendet wird. Symfony besteht aus Gruppen mehrerer PHP-Komponenten, die sich zu einem Framework zusammengeschlossen haben. Seit der ersten Veröffentlichung wurde es regelmäßig herausgegeben, mindestens zwei neue Versionen pro Jahr. Bis jetzt haben alle der verschiedenen Releases mindestens acht Monate Support und in einigen Fällen sogar bis zu drei Jahren. Es gibt derzeit vier verschiedene Versionen mit LTS; 2.7 und 2.8, die beiden wurden 2015 veröffentlicht, während die Versionen 3.4 und 4.0 im November 2017 erschienen sind. Zum Zeitpunkt des Schreibens dieses Artikels ist die nächste Version die 4.1, die im Mai veröffentlicht wird und PHP 7.1.3 und neuer unterstützt [Anm. d. Red.: Die aktuelle Version 4.2 ist im November 2018 erschienen].

Wie ich bereits erwähnt habe, beinhaltet dieses Framework eine Vielzahl von Komponenten, mehr als 30. Die Erklärung all dieser Komponenten ist nicht Teil dieses Artikels. Aber einige sind wirklich interessant und es lohnt sich, sie hier zu erwähnen. Unter ihnen finden wir die Cache-Komponente, die ein erweitertes PSR-6 und PSR-16 zum Hinzufügen von Cache zu den Anwendungen bereitstellt, die Konsolenkomponenten, die selbsterklärend sind, und eine PHPUnit Bridge, welche Legacy-Tests und veralteten Code meldet, genauso wie Sicherheits-, Übersetzungs-, Routing- und Validierungskomponenten. Eines der erstaunlichsten Kennzeichen dieses Frameworks ist seine Dokumentation. Die Personen, die dieses Projekt entwickeln, haben nicht nur ein sehr detailliertes Projekt erstellt, sondern es gibt auch eine Erklärung für jede Komponente. Es gibt auch eine Menge an Leuten, die über dieses Framework sprechen sowie eine riesige Community, sodass die Dokumentation und der Support nie ein Problem sein werden. Das ist etwas, was von demjenigen berücksichtigt werden sollte, der damit beginnen möchte.

Soll ich Symfony lernen? Um diese Frage zu beantworten, werde ich eine berühmte Regel über das Investieren erläutern. Diese Regel besagt, dass es eine sehr gute Idee ist, sich auf ein Blue-Chip-Unternehmen zu konzentrieren, mit einer bekannten Marke und jahrzehntelang erfolgreicher Dividendenzahlung. Hier haben wir ein Blue-Chip-PHP-Framework, aus dem andere unterschiedliche Frameworks entstanden sind. Zum Beispiel Laravel, auch wenn es einen zeitgemäßeren Stil hat, ist gestartet und basiert noch immer stark auf Symfony-Komponenten. Dies ist ein Beweis dafür, dass, wenn Sie den Stil mögen, Symfony zweifellos das Framework ist, um zu beginnen.

Offizielle Webseite

GitHub Repository

TwistPHP

TwistPHP ist ein kleines Framework, das die Benutzerfreundlichkeit zu seinem Markenzeichen macht. Es handelt sich um ein Open-Source-Framework, das unter GNU-Lizenz angeboten wird. Es enthält mehrere Features, die durch nur ein paar Zeilen Code implementiert werden können. TwistPHP wurde als privates Projekt entworfen, und als Verbesserungen stattfanden, wurde der Quellcode veröffentlicht und im Juli 2014 in ein GitHub Repository verschoben. Die erste offizielle Freigabe erfolgte mit TwistPHP 2.3.4 im November 2014.

Im Laufe der Jahre hatte diese Software viel Zeit sich zu verbessern und jetzt mit ihrer letzten stabilen Version (3.0.5) verfügt sie über eine vollständige MVC-Architektur, objektorientiertes Design und eine brandneue Methode zur Verbindung mit der Datenbank und zur Erstellung von MySQL-Abfragen, wobei die Art und Weise, wie es aufgebaut wurde, die Erweiterbarkeit und Zuverlässigkeit verbessert.

Im Grunde genommen, kann es als ein durchdachtes Framework für alles und für alle betrachtet werden. Wenn Sie es ausprobieren oder dem Projekt helfen wollen, können Sie es durch das GitHub Repository unten unterstützen.

Offizielle Webseite

GitHub Repository

TYPO3 Flow

Um dieses Framework effektiv zu beschreiben, muss die Geschichte mit TYPO 3 beginnen. Es handelt sich um ein freies und open-source-entwickeltes CMS, das vor 20 Jahren entwickelt wurde (erste Veröffentlichung 1998). Es wird viel im deutschsprachigen Raum verwendet, ist aber auch in mehr als 50 Sprachen erhältlich. TYPO3 wird genutzt, um jede Art von Webseiten zu erstellen. Nur um eine Idee zu haben, wie groß dieses CMS ist: der Code wurde von mehr als 300 Mitwirkenden bearbeitet und verbessert, und aktuell wurde es mehr als 500.000 Mal installiert. TYPO3 Flow war ein Zweig von TYPO3, das Team wollte ein Produkt schaffen, das modern ist und unabhängig von TYPO3 eingesetzt werden kann. Nach mehrmonatiger Entwicklungszeit wurde die Beta im August 2011 veröffentlicht, ebenfalls ein Open-Source-Produkt. Die neuste Version ist die 4.2.4. vom 18. Oktober 2017. Der Code ist der Basiscode von TYPO3 Neos, kann aber wie gesagt auch ohne das CMS verwendet werden. Es wurde nach dem neuesten Prinzip des Codings geschrieben, wie beispielsweise nach dem MVS-Paradigma, AOP (Aspect Oriented Programming), DDD (Domain Driven Design) und TDD (Test Driven Development) usw. Aus diesem Grund benötigt diese Software die Version 5.3 oder höher.

Ein weiteres interessantes Feature von TYPO3 Flow ist Fluid, eine Template Engine. Es unterstützt alle logischen Strukturen einer Programmiersprache wie Condition, Iterationen, Schleifen usw., indem es eine wirklich einfache Syntax bietet und die Verwendung von PHP in den Template-Dateien vermeidet.

Ich habe es geschafft mit Herrn Christian Müller zu sprechen, der der Ansprechpartner der Community ist, und er betont, dass in dem Moment meines Schreibens über das Neos-Projekts (einschließlich Flow Framework) dieses vom TYPO3-Projekt abgespaltet wurde und nun offiziell als Neos-Projekt eigenständig ist. Das Framework Flow kann nun unter dem Namen „Neos Flow“ oder einfach nur Flow gefunden werden, wenn der Kontext bekannt ist. Es gibt keine Verbindung zu TYPO3 mehr, außer ein paar Bits Shared Code.

Was das Framework betrifft, so gibt es heute nur noch kleine Änderungen. Christian und das Team versuchen, mehr PSR-Kompatibilität zu erreichen, verwenden den Composer immer mehr und mehr und werden generell offener für Packages und vergrößern die Community. Er arbeitet persönlich an Refactoring, SQL-Verbesserung und der Veröffentlichung von Releases.

Offizielle Webseite

GitHub Repository

Yii

Yii ist ein Framework, dass von denselben Machern entwickelt wurde wie Prado. Um ehrlich zu sein, es wurde geschaffen, um alle Probleme zu beheben, die Prado hatte (siehe Beschreibung Prado). Wie andere Frameworks, wird es unter der neuen BSD-Lizenz veröffentlicht, sodass es möglich ist, es kostenlos zu nutzen und Open-Source-Webanwendungen zu erstellen. Die erste Beta-Version wurde 2006 nach einigen Monaten der Entwicklung veröffentlicht, gefolgt von der ersten offiziellen Version 1.0 im Dezember 2008. Eine vollständigere Version wurde im Januar 2010 veröffentlicht. Sie beinhaltet einen Form Builder, ActiveRecord, eine Internal Unit Test Library und einige weitere Features, die Yii zu einem vollständigeren PHP Framework als seinen Vorgänger machen. Seit Beginn entschieden die Entwickler, dieses Projekt auf dem neuesten Stand der Technik zu halten. Die aktuelle Version ist 2.0.15, die im März 2018 mit vollem PHP-7-Support veröffentlicht wurde. Es gibt keine besonderen Features oder spezielle Eigenheiten, es ist dafür ein ziemlich solides Framework und zu den Eigenschaften der neusten Version gehören: MVC Design Pattern, Internationalisierung und Lokalisierung mit I18N und L10N, die die Übersetzung von Texten und Format Time sowie Daten, Fehler-Handlers und Loggings, Sicherheitsmaßnahmen gegen XSS und Cross-Site-Request-Forgery sowie eine Testfunktion von PHUnit und Selenium ermöglichen.

Wie Sie bereits mehrfach im Verlauf der Artikel gesehen haben, ist einer der Hauptpunkte über die ich nachdenke, wenn ich mich entscheiden muss, ob ich ein neues PHP-Framework verwenden möchte, die Dokumentation. Yii’s Dokumentation ist unvergleichlich. Ich sage nicht, dass sie die beste Dokumentation der Welt haben, aber sie ist extrem umfangreich und sehr durchdacht. Sie ist in zwei Teile gegliedert, der Guide und der Teil, der das API betrifft. Jeder Teil ist durch Konzepte unterteilt, die die Suche nach einem bestimmten Merkmal wesentlich erleichtern. Zudem ist sie in mehreren Sprachen verfügbar, darunter Spanisch, Chinesisch und Polnisch.

Was die Community betrifft, die Verantwortlichen von Yii haben es auf die nächste Ebene gebracht, indem sie einen ganzen Abschnitt erstellt haben, den sie Extension nennen, der vollständig durch Benutzerbeiträge zusammengestellt wurde. Ich habe Alex Makarov, einen der Hauptverantwortlichen für das PHP-Framework Yii – seit mehr als sieben Jahren – gebeten, uns seinen Eindruck von diesem Framework zu vermitteln, und das ist das, was er gesagt hat:

“I think, YII is one of the most documented frameworks overall. We’re writing good API docs for everything we release and sometimes expanding the guide. The Learning curve is low to just start but high to be good in the architecture of big projects with Yii. Overall, Yii is great for rapid app prototyping and what’s more, you can really enhance that prototype afterward, not throwing it away and re-writing. There are many tools out of the box. It is faster than many frameworks and doesn’t cache much. Also, it’s very easy to debug in case of errors. It’s not too layered while being flexible.”

Zusammenfassend möchte ich sagen, dass Yii die Lektion gelernt hat, die das Prado-Projekt mit sich gebracht hat, auch wenn online immer noch Zweifel an der Qualität des Frameworks bestehen, kann man sicher die Mühe sehen, die sie sich gemacht haben.

Offizielle Webseite

GitHub Repository

Zend Framework

Es gibt eine Menge Streitigkeiten über Zend und sein ganzes Umfeld, es gilt als eines der beliebtesten PHP-Frameworks auf dem Markt (und die hohe Anzahl an Installationen bestätigt diese Aussage). Es wurde im März 2006 erstmals veröffentlicht und ist ein Open-Source-Projekt, das unter der neuen BSD-Lizenz lizenziert ist. Ursprünglich war es ein einzigartiges Produkt, nach Version 2.5 beschlossen die Entwickler, ein modulareres Produkt zu entwickeln, sodass sie das Framework in mehrere Komponenten aufteilten und es zu einer Sammlung von PHP-Paketen wurde. Es stehen mehr als 60 Komponenten und ein Plug-in zur Auswahl. Zu den wichtigsten gehören die Authentifizierung, Grypt, Json, Mail, Math, Paginator, Serializer und Validator. Ein weiterer Vorteil der Verwendung von Zend ist die Prädisposition für TDD (Test Driven Development). Zend implementiert Zend_test, was PHPUnit verwendet. Es erlaubt Ihnen Controller, Modelle und Bibliotheken zu verwenden. Um PHPUnit in das Projekt zu implementieren, brauchen Sie Zend_tool, das standardisierte Scaffolding Utility von Zend.

Wie immer achte ich besonders auf die Dokumentation und Tutorials, hier ist Zend das Beste der Besten. Es verfügt nicht nur über eine hervorragende Dokumentation, sondern sie gehen auch noch einen Schritt weiter, indem sie Schulungstage, Konferenzen (ZendCon) und einen weltweit anerkannten Satz von Zertifizierungen ins Leben rufen. All dies steht im Zusammenhang mit der großen Community von Entwicklern, die Zend nutzen und ihr Wissen täglich weitergeben.

Lesen Sie auch: „Zend hört nicht auf“ – Zeev Suraski über die Zukunft von Zend Framework

Wie ich schon sagte, es ist ein gutes PHP-Framework, aber es hat seinen Nachteil (die Qualität des Codes könnte verbessert werden und es ist definitiv nicht das schnellste Framework, das in dieser Artikelreihe aufgeführt ist), aber im Allgemeinen ist es ein gutes Framework, und der Fokus auf Marketing hat sich ausgezahlt (wer kann es ihnen verübeln?).

Ganz zu schweigen davon, dass das PHP-Zend-Zertifikat für manche HR-Manager so viel Wert ist wie ein Informatik-Abschluss.

Offizielle Webseite

GitHub Repository

Zend Certification

Zusammenfassung

Ich bin sicher, dass wir alle mindestens einmal Personen gehört haben, die gesagt haben, dass PHP gestorben ist, oder Sätze wie:

„Es gibt jetzt Phyton“

„.NET ist das neue PHP“

„Haben Sie Ruby probiert, das ist der Wahnsinn“

„Ich kannte bereits JavaScript, also habe ich mich in den letzten Jahren für NodeJS entschieden“

Das Wahrheit ist, dass PHP sich verändert hat, und es sich auch heute noch ändert. Damals dachte man, dass Version 5.5 (veröffentlicht im Juni 2013) die letzte sein werde, die abgebrochene 6.x-Version und dann die aktualisierte Version zu 7.0., die sehr langsam war, gab anderen Backend-Sprachen Zeit, sich zu entwickeln und beliebter zu werden. Das Ergebnis dieser Pause war die schnellste Version von PHP, die je entwickelt wurde, die Liste der implementierten Features war gewaltig und die Benchmarks zwischen PHP 7.1 und allen anderen Sprachen, gewinnt die Sprache des blauen Elefanten bei weitem.

Ich und mehrere tausend andere Entwickler auf der ganzen Welt seufzten erleichtert und lächelten vor Freude, während des Lesens der Dokumentation, die im Dezember 2015 veröffentlicht wurde. Null Coalesce Operator, Spaceship, Generators, Anonyme Klassen sind Merkmale der Sprache, die Entwicklern helfen wird, überragende Projekte für mehrere Jahre zu kreieren. Besondere Aufmerksamkeit geht an den Composer, der Einsatz von Nils Adermann und Jordi Boggiano ist unglaublich, dieser Dependency Manager hat die Weise, wie wir programmieren für immer verändert. Nur durch das Hinzufügen von ein paar Dateien zur Grundstruktur unserer Projekte und dem Ausführen einiger Befehle auf dem Terminal setzt eine Kraft frei, die das Potential hat, das neue Facebook zu entwickeln (zumindest auf dem Papier).

Zu den Frameworks, die wir gesehen haben, gibt es keine eindeutige Antwort auf die Frage „Welches ist das beste verfügbare PHP-Framework?“ Es gibt viele Fragen, die gestellt werden müssen, um diese Frage zu beantworten. Was wollen Sie entwickeln? Wann ist Ihre Deadline?  Wie schnell möchten Sie Ihr Projekt verfügbar machen? Ist es wirklich so einfach zu benutzen? Wie viel Zeit bleibt mir, um die neue Syntax zu erlernen? Gibt es eine gute Dokumentation, aus der man lernen kann?

Mein Ratschlag ist, all diese Fragen jedes Mal für jedes Projekt zu stellen. Probieren Sie das Framework, was Sie interessanter finden und wählen Sie eins, dass sich für Sie gut anfühlt. Vergessen Sie dabei nicht, dass PHP-Frameworks kommen und gehen, konzentrieren Sie sich immer darauf, die wichtigsten Funktionen der Sprache zu lernen und halten Sie sich über die Updates neuer Versionen auf dem Laufenden.

Ein zusätzlicher Tipp:

Vergessen Sie nicht zu lesen.

I really had a lot of dreams when I was a kid, and I think a great deal of that grew out of the fact that I had a chance to read a lot.“ (Bill Gates – Business Greatest Adventures)

Jetzt, ich bin mir sicher, sind wir uns alle einig, dass die Zeit, die Sie vor dem Bildschirm verbringen, entweder durch das Herumspielen mit Cloud-Diensten, Webseiten zur Versionskontrolle usw., Ihre Fähigkeiten als Webentwickler steigern wird. Aber wie Bills Zitat aus dem von John Brooks geschrieben Buch besagt, ist ein anderer Weg sich zu verbessern – und das half mir enorm – Bücher zu lesen. Von den Evergreens wie „Design Patterns: Elements of Reusable Object-Oriented Software“, geschrieben von the gang of four bis „Modern PHP“, geschrieben von Josh Lockhart, dem Verfasser von „PHP The Right Way“, gibt es eine Menge an Ressourcen, von denen man lernen kann.

Seien Sie wie Bill.

Besonderer Dank

Ein besonderer Dank gilt den folgenden Personen, die trotz ihres ständigen Engagements für die Realisierung und Verbesserung der Frameworks, die wir als Entwickler und Unternehmen auf der ganzen Welt täglich verwenden, die Zeit gefunden haben, einige meiner Fragen zu beantworten, die die Qualität dieser Artikel erhöht haben.

Das sind sie:

Phil Sturgeon (zur Webseite)

Software Engineer at WeWork

für Fuel PHP and Codelgniter

 

Chema Garrido (zur Webseite)

Founder – CTO at Yclas

für Kohana

 

Tomáš Votruba (zur Webseite)

Head of Social Media and Content Marketing at Notino

Milan Šulc (zur Webseite)

freelancer DevNinja

für Nette Framework

 

Nick Sagona (zur Webseite)

Senior Software Developer at Punctual Abstract Co., Inc

für POP PHP

 

Christian Müller (zur Webseite)

Free Code Creator for TYPO3, Flow and Neos

für TYPO3 FLOW

 

Alexander Makarov (zur Webseite)

Lead PHP backend developer at Skyeng

für Yii

 

Nate Abele (zur Webseite)

CTO of Radify.io

for Li₃

 

The Definitive Guide to your next PHP Framework

Dieser Artikel ist der letzte Teils des Kindle Buchs „The Definitve Guide to your next PHP Framework“

Teil 1: PHP-Frameworks – Der ultimative Guide: Agavi & CakePHP

Teil 2: PHP-Frameworks – Der ultimative Guide: Laravel, Codelgniter, Drupal und einige mehr

Teil 3: PHP-Frameworks – Der ultimative Guide: Pop PHP, Silex und SilverStripe

Nun möchte ich von Ihnen wissen, für welches PHP-Framework Sie sich für Ihre nächstes Projekt entschieden haben?

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 -