PHP

Teil 3 der PHP-Framework-Reihe

PHP-Frameworks – Der ultimative Guide: Pop PHP, Silex und SilverStripe
1 Kommentar

Weiter geht es mit dem dritten Teil der Reihe über verschiedene PHP-Frameworks. Mit dabei sind diesmal: Li3, Nette Framework, Phalcon, Pop PHP, Prado, Silex und SilverStripe.

Wenn Sie bereits auf die ersten beide Teile dieser Artikel-Serie gestoßen sind, sollten Sie die Kunst der Arbeit mit PHP-Frameworks beherrschen. Arbeiten ohne Stress und nur das programmieren, was Sie wollen, und nicht das, was Sie müssen.

Denken Sie daran, dass wir erst bei der Hälfte sind und dass es unten noch viele weitere Frameworks zu entdecken gibt. Ich bin sicher, dass Sie das ideale Framework für sich finden werden.

Li3

Wie wir bereits gesehen haben, sind einige Frameworks Refactoring-Versionen oder neue Projekte, die stark auf anderen PHP-Frameworks basieren. Li3 ist nicht anders. Geboren wurde es im Oktober 2009, unter dem Namen von Cake3, aus der Idee von Garret Woodworth und Nate Abele, Projektmanager und Entwickler von CakePHP.

Entwickelt für PHP 5.3 und höher, erhebt Li3 den Anspruch, eines der ersten Frameworks zu sein, das Webentwicklern bahnbrechende Technologien zur Verfügung stellt. Dieses Projekt hat es zudem geschafft, mehrere wichtige Sponsoren wie Engine Yard (PaaS, San Francisco), Ratify und Atelier Disko zu gewinnen.

Unter den relevanteren Technologien muss ich das API erwähnen. Es ist vielleicht das erste, das die Unterstützung für rationale und nicht-rationale Datenbanken zusammen und ihre Klassenstruktur umfasst. Tatsächlich wird aus der Flexibilität ein Schlachtpferd: Die Struktur der Klassen erlaubt es Ihnen, Ihr Projekt zu organisieren und auf einfache Weise built-in-Klassen zu ersetzen oder zu überschreiben. Die Benutzung von Closure- und Anonymous-Funktionen ermöglicht es dem Entwickler, Methodenaufrufe zu verbinden.

Li3 beinhaltet MySQL, MongoDB, CouchDB und Redis sowie Unterstützung für Cassandra und ElasticSearch, wie auch PHP ActiveRecors und Doctrine 2.

Als ich Nate Abele, Gründer und CEO von Radify (ein Technologieunternehmen für automatisierte Software) und Chief Developer von Li3, einmal fragte, was er über das Framework denkt und wie man das Beste davon auswählt, gab er mir eine lustige Antwort:

„Thats like asking what’s the best food. Different frameworks are for different types of apps and different ways of thinking about problems. There’s certainly some overlap, but I don’t think one could argue that a single one out of all of them is best.“

Li3 ist zweifellos ein gutes Framework, das eine ziemlich große Community zu haben scheint. Wie bei anderen Frameworks müssen Sie es testen und sehen, ob die User Experience zu Ihnen passt.

Offizielle Webseite
GitHub Repository

Nette Framework

Erschaffen von David Grudl und von einem großen Team weiterentwickelt, ist Nette nicht als Framework zu verstehen, sondern als Kombination verschiedener Dienste. Es beinhaltet:

  • Latte, eine high-tech Template-Sprache (schlägt Smarty/Twig definitiv)
  • DI, einen proprietären Dependency Container
  • Tester, ein PHP Unit Testing Suite
  • Tracy, ein Debugging-Tool
  • Dependeny Injection, ein PHP-Container für Services und natürlich das Open Source Framework

Das Framework selbst ist auch in kleine Pakete unterteilt:

  • nette/application
  • nette/di
  • nette/mail
  • nette/utils
  • etc.

Jedes Paket hat seinen eigenen Release-Zyklus und wird bei Bedarf veröffentlicht. Mit diesen Paketen können Sie fast alles erstellen: API, eine persönliche Seite sowie ein mittelgroßes Projekt. Nette selbst ist ein großartiges Framework, weil es eine coole Architektur mitbringt.

Bezüglich Datenbanken können Sie beispielsweise einfach Doctrine verwenden. Es gibt auch einen Active Record Layer namens Nette Database. Wenn Sie ein API auf PSR-7 erstellen möchten, können Sie das! Das Team hat viele Projekte auf PSW-7 entwickelt, auch wenn Nette nicht PSR-7-kompatibel ist. Es handelt sich um ein MVC-Framework, das PHP 5 und PHP 7 unterstützt.

Die grundlegenden Programmierprinzipien DRY (Don’t Repeat Yourself) und KISS (Keep it Simple, Stupid) der Kern-Features machen Nette zu einem leicht zu bedienenden und schnellen PHP-Framework. Wie bei anderen, hat auch Nette eine BSD-Lizenz, die minimale Einschränkungen vorsieht und für Entwickler die Möglichkeit erhöht, die Qualität innerhalb des Codes zu verbessern.

Nette Framework (ich meine alle Pakete zusammen) steht aktuell in der Hauptentwicklungslinie 2.4. Frühere Versionen sind 2.3, 2.2, 2.1 und 2.0. Im Moment arbeitet das Team an Nette 3.0 mit vollem PHP 7.1 Support. Aber wie gesagt, alle Nette-Pakete sind PHP 7.2-kompatibel.

Derzeit besteht das Nette-Team aus sechs Personen. Das Framework scheint vor allem in Osteuropa benutzt zu werden. Von einer SitePoint-Umfrage wurde es als dritt-meistgenutztes Framework des Jahres 2015 gewählt. Leider, trotz guter Dokumentation, gibt es nicht viel über dieses Framework zu sagen. Aber es ist klar, dass das dahinterstehende Team versucht, die Qualität des Produkts und dessen, was dazugehört, zu verbessern. Die Open-Source-Lizenz hilft dabei sehr.

Ich hatte die Möglichkeit, mit zwei der bekanntesten Personen der Nette-Community zu chatten: Tomáš Votruba und Milan Šulc. Wenn Sie sich nur die beeindruckende Anzahl der Beiträge in den GitHub-Projekten ansehen, werden Sie verstehen, dass Sie mit jemandem sprechen, der sich auskennt. Da in den letzten zwei Jahren nur eine begrenzte Anzahl neuer Features von Nette veröffentlicht wurde, verbringt Tomáš  die meiste Zeit damit, an Symfony zu arbeiten und für seinen Blog zu schreiben. Ein beeindruckender Beitrag, den er mit uns zu diesem Thema teilen wollte, ist der Vergleich zwischen seinen bevorzugten drei Frameworks: Symfony vs. Laravel vs. Nette. Milan’s Hauptziel war die Verbesserung der Dokumentation, die entweder in Tschechisch oder Englisch geschrieben ist. Seine Leistungen in diesem Bereich waren enorm. Er hob das Wachstum der Nette-Community hervor, besonders in Tschechien, wo das Team ein monatliches Event unter dem Namen PoSobota organisiert. Einmal im Jahr treffen sie sich in einem Sommer-„Nette-Camp“, in dem sie programmieren und trinken (ich bin nicht sicher, wie hoch der Prozentsatz ist).

Offizielle Webseite

GitHub Repository

Phalcon

Es ist leichter, das Ziel eines Produktes zu verstehen, wenn man es sieht. Und es ist noch einfacher, es zu sehen, wenn es so hervorgehoben ist. Phalcons erstes und wichtigstes Ziel ist Geschwindigkeit.

Andres Gutierrez, der Entwickler, startete sein Projekt, indem er einen ganz anderen Weg ging als die anderen. In der Tat, Phalcon PHP ist eine Web-Server-Erweiterung und ist in einer Lower-level-Programmiersprache wie C und Zephir geschrieben, was die Möglichkeit bietet, es in einer Higher-level-Sprache zu entwickeln und in PHP zu kompilieren. Dieser Prozess vereinfacht die Entwicklung und reduziert die Zeit der Programmierung. Phalcon PHP wurde in seiner Beta-Version (genannt Spark) im Jahr 2011 veröffentlicht. Die erste Version ist von November 2012. Es beinhaltet ein sehr schnelles ORM, das Cache-Element, und sein grundlegender Code folgt dem MVC-Pattern. Mit der folgenden Version wurden weitere Features angekündigt, wie beispielsweise PHQL, ein Dialect von MySQL, was die Abfragen und Anfragen an die Datenbank beschleunigt, sowie Volt, eine Template-Engine. Die erste Version, die LTS und unter anderem auch PHP 7 unterstützt, ist 3.0.0. Ein bemerkenswertes Nebenprojekt des Phalcon-Teams ist Phalcon Slayer, ein Wrapper, der den Framework-unterstützenden Composer rekonstruiert. 

Wie vom Team erklärt und auf der offiziellen Webseite hervorgehoben, ist dieses Framework auf Velocity fokussiert und damit eines der schnellsten, wenn nicht sogar das schnellste PHP-Framework unter den anderen.

Phalcon offizielle Webseite

GitHub Repository 

Pop PHP

Nick Sagona ist ein Entwickler aus New Orleans LA, der die Idee hatte, mehrere alte PHP-Bibliotheken zu refaktorisieren und ein Open-Source-Projekt zusammenzustellen. Die erste Version von Pop PHP wurde am 19. März 2012 veröffentlicht. Im Mittelpunkt seiner Bemühungen stand die Zusammenführung dieser Bibliotheken in einem MVC-Set von Komponenten, um eine Webanwendung auf einfache Weise zu erstellen. Die zweite Version, die nicht mehr unterstützt wird, aber noch verfügbar ist, wurde im Juli 2015 veröffentlicht, um PHP 5.4 und den Einsatz des Composers voranzutreiben. Version 3 wurde ein Jahr später veröffentlicht und erhielt ein Update von der Vorgängerversion. Es wurde entwickelt, um die neuen Funktionen von PHP 7 und PHP 5.6 zu unterstützen. Die letzte Version, die jetzt auf der offiziellen Webseite und auf GitHub verfügbar ist, ist Version 3.6.5.

Pop PHP ist ein sehr gutes Produkt und zählte mehrere Male zu einem der besten PHP-Frameworks. Zudem enthält es derzeit viele Funktionen, die auch für einige größere Frameworks zugänglich sind: Routing, Service Locators, einen Event-Manager, Form-Generatoren, automatisierte E-Mails, einen PDF-Generator, Caching, Debugging und Logging. Ergänzend zu der Liste muss ich Popcorn hinzufügen, ein REST-basiertes Mikro-Framework für die Bereitstellung schneller Webanwendungen.

Nick war so freundlich, meine Fragen zu Pop PHP zu beantworten. Was er sagte, war, dass das Projekt mit einer kleinen Bibliothek an Komponenten begann, die er geschrieben hatte, um die Webseite und die Apps, die er damals entwickelte, zu verwalten. Und von dort aus wuchs das Framework ziemlich schnell, basierend sowohl auf dem erweiterten Bedarf sowie der Beobachtung von Trends und Standards in der Branche. Er hat sicher viel persönliche Zeit investiert, merkte aber an, dass er sich freuen würde, wenn er mehr Zeit für die Vermarktung hätte oder das Framework ein bisschen mehr vorantreiben könnte.

Offizielle Webseite

GitHub Repository 

Prado

Manchmal starten Projekte auf dem falschen Fuß, und es gibt sehr wenig, was man tun kann. Prado scheint eines von ihnen zu sein. Dieses Projekt wurde zunächst von Qiang Xue, einem chinesischen Softwareentwickler mit viel Erfahrung im Open-Source-Bereich, gestartet. Das Framework wurde zum Leben erweckt, indem es sich ASP.NET und Delphi als Inspiration nahm. Die erste Version wurde im Juni 2004 veröffentlicht und in PHP 4 geschrieben. Aufgrund dessen war die Qualität dieser Version sehr eingeschränkt und führte zu einigen Problemen. Qiang überarbeitete es mit der moderneren PHP-5-Version und konnte somit den Zend PHP Coding Contest im Jahr 2004 gewinnen. Er erhielt Stimmen von der Community und der Jury.

Im Mai 2005 beschloss das Entwicklerteam, das Framework von Grund auf neu zu schreiben, um einige Probleme aus der zweiten Version zu beheben. Von Version 3 aufwärts wurde das Projekt wesentlich stabiler, der Code wurde erst in Google und im Anschluss in GitHub geschoben. Dieser Prozess brachte mehr Mitwirkende, die fähig waren, die Problem zu beheben und so ein besseres Produkt zu entwickeln. Im Oktober 2008 veröffentlichte das Entwicklerteam Yii, ein PHP-Framework, Nachfolger von Prado, das das Konzept der page/events verlässt und sich auf  MVC-Design-Pattern fokussiert.

Heutzutage helfen noch viele weitere Leute und entwickeln neue Features, obwohl sich der Großteil der Arbeit jetzt auf Yii konzentriert, das ich im nächsten Teil beschreiben werde.

Offizielle Webseite

GitHub Repository

Silex

Fabien Potencier ist der Erfinder von Symfony, eines der besten und der beliebtesten Frameworks, wie Sie im weiteren Verlauf der Artikelreihe sehen werden. Silex teilt sich den gleichen Schöpfer wie Symfony und wurde erstmals im letzten Quartal des Jahres 2010 veröffentlicht. Aktuell liegt es in Version 2.0 vor.

Silex ist ein Mikro-Framework, das stark auf Symfony basiert und hauptsächlich zur Erstellung kleiner Webanwendungen und REST-APIs verwendet wird. Silex gibt es in zwei verschiedenen Arten: Die schlanke, die nur über eine einfache Routing-engine, eine eingebaute Sicherheitsfunktion, Sessions und Cookie Handlers sowie einige kleinere andere Funktionen verfügt. Dieser Typ ist extrem schnell und ready-to-go. Die zweite Version heißt Fett, und wie der Name schon sagt, ist es die vollgepackte Version. Es enthält Twig, eine Template-Engine sowie Doctrine, eine Datenbankabstraktion und andere Funktionen, die aus dem Mutter-Framework Symfony übernommen wurden.

Derzeit ist Silex als eines der besten und schnellsten Mikro-Frameworks bekannt, wie mehrere Benchmark-Vergleiche in den letzten Jahren gezeigt haben. Wenn Sie eine sehr kleine Anwendung oder ein API erstellen müssen, ist das Verbringen von Zeit zum Lernen von Silex eine weise Entscheidung. Das Endergebnis wird ausgezeichnet sein und Sie werden die Grundlagen von Symfony kennen lernen, was gut ist, wenn Sie Ihre Anwendung vergrößern möchten.

Offizielle Webseite

GitHub Repository

[Anm. d. Red.: Silex befindet sich inzwischen im Maintenance Mode. End-of-Life seit Juni 2018. Alternativ kann gemäß der offiziellen Webseite Symfony 4 genutzt werden. Mehr dazu auf dem Symfony Blog.]

SilverStripe

Hier ist ein weiteres Produkt, dass zur CMS-Kategorie gehört, eine Open Source Software unter BSD-Lizenz. SilverStripe kann sowohl als CMS betrachtet werden, da es über ein Administration-Panel verfügt, das es dem Nutzer ermöglicht, Teile der Webseite zu bearbeiten, als auch als Kern des PHP-Frameworks SilverStripe. Die Software wurde vor fast 20 Jahren von SilverStripe Limited entwickelt, einem Webunternehmen mit Sitz in Neuseeland und Australien. Die Entwicklung der zweiten Version, die einige neue Eigenschaften von PHP 5 nutzt, wurde Ende 2005 begonnen und schließlich am 3. Februar 2007 veröffentlicht. Ein gewaltiger Meilenstein wurde im Jahr 2010 erreicht, als die Software 250.000 Mal heruntergeladen wurde. SilverStripe 3.0 und 3.1 wurden im Juni 2012 und Oktober 2013 veröffentlicht und unterstützen API-Usability, Composer, YAML und verbessern die Uploader-Feature.

Ein großer Unterschied zu anderen CMS ist die klare Trennung zwischen den Autoren, die für die Erstellung von Inhalten verantwortlich sind, und den Entwicklern/Designern, die die Struktur der Webseite ändern müssen. Diese hervorgehobene Trennung bietet eine einfach zu bedienende Oberfläche für die Autoren und gleichzeitig mehr Flexibilität für Webentwickler. Technisch gesehen ist es eine gute Software, die in PHP 5.3 mit objektorientiertem Design entwickelt wurde und dem MVC-Muister sowie dem objekt-rationalen Mapper folgt. Zu den Funktionen gehören eine maßgeschneiderte Version von TinyMCE, SEO-freundliche URLs, Unterstützung für UTF-8 und Internationalisierung sowie hunderte von Modulen, Widgets und Themes, die zur Erweiterung des Kern der Anwendung verwendet werden können.

Zusammenfassend sei gesagt, SilverStripe ist ein sehr gutes CMS, das als eigenständiges Framework verwendet und bearbeitet werden kann. Im Laufe der Jahre hat es sich Vertrauen erworben, dank der guten Qualität des Codes und der zahlreichen Preise, die es gewonnen hat.

Offizielle Webseite

GitHub Repository

Dieser Artikel ist der dritte Teil des Kindle-Buchs mit dem Titel „The Definitive Guide to your next PHP Framework.“ Schauen Sie sich die vorherigen Teile an, um die Einführung zu diesem Artikel und die Beschreibung der bereits erläuterten Frameworks zu lesen. Teil 4 wird in den kommenden Wochen veröffentlicht.

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

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

Teil 4: PHP-Frameworks – Der ultimative Guide: Symfony, TYPO3 Flow und Zend

Nun sind Sie an der Reihe! Ich hoffe Ihnen hat mein Framework-Vergleich bisher gefallen. Der nächste Teil wird demnächst veröffentlicht. Aber jetzt möchte ich Folgendes von Ihnen wissen: Wie Sie gesehen haben, gibt es eine Vielzahl an PHP-Frameworks da draußen. Welches werden Sie zuerst ausprobieren?

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

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

1 Kommentar auf "PHP-Frameworks – Der ultimative Guide: Pop PHP, Silex und SilverStripe"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Mark
Gast

Ähm… Wie auf der Silex Homepage zu leen ist: „Silex is in maintenance mode. Ends of life is set to June 2018.
Use Symfony 4 instead…. “ Das könnte ja schon im Artikel erwähnt werden.

X
- Gib Deinen Standort ein -
- or -