PHP-Framework
Lesedauer 5 Minuten

Oft hört man zweifelnde Stimmen, wenn Entwickler davon sprechen sowohl kleine als auch große Projekte mit PHP zu realisieren. Für viele ist PHP immer noch eine klassische Skriptkiddy-Sprache.

Spätestens mit dem Verwenden von Frameworks entspricht das aber nicht mehr der Wahrheit. Denn diese helfen dabei, Projekte in gut strukturierter und objektorientierter Umgebung umzusetzen.

 Was ist ein Framework und wozu dient es?

  • Ein Framework fungiert als Schablone für dein Projekt und bindet verschiedene Technologien, Konventionen und vorgefertigte Teillösungen an dieses.
  • Ein Framework soll bei der Entwicklung möglichst viel Arbeit abnehmen, so dass man sich auf die eigentlichen Funktionen seines Projektes konzentrieren kann.
  • Einige der Funktionen, die viele Frameworks bieten, sind unter anderem Datenbank-Management, MVC-Struktur und Template-Management.

Welches Framework passt zu mir?

In diesem Beitrag erfahrt ihr, welche Frameworks wir miteinander verglichen haben und für welches wir uns entschieden haben. Welches Framework schlussendlich zu euch passt, müsst ihr natürlich für euch selbst entscheiden.

Wir haben uns die PHP-Frameworks Laravel, Symfony und das Zend Framework zum Vergleich herangezogen.

In folgender Ansicht lässt sich erkennen, dass laut Google Trends das Framework Laravel das am häufigsten gesuchte Framework für neue PHP-Projekte ist.

Welche Vor- und Nachteile bieten diese Frameworks?

Zend-Framework

Das Zend-Framework ist sehr offen gestaltet, wodurch einige Vor-, aber auch Nachteile entstehen.

Auf der einen Seite lässt sich das Framework aus diesem Grund für fast jeden Anwendungsfall gebrauchen. Wiederum ist in diesem Fall ggf. ein höherer Initialaufwand bei Erstellen des Projekts zu erwarten. Hierdurch ist das Framework eher nicht für kleine, sondern für mittelgroße bis große Projekte geeignet.

Ein weiterer für uns wichtiger Vorteil ist der durchdachte Release Plan und die Unterstützung von LTS-Versionen. Auch eine gute Dokumentation und Unterstützung einer großen Community ist geboten.

Das Zend-Framework bietet schon viele nützliche Module zur Verwendung im eigenen Projekt. Diese unterstützen unter anderem bei Formularen, Validierung, Internationalisierung und Entwicklung in einer MVC-Struktur.

Symfony

Symfony gehört zu den umfangreichsten und erweiterbarsten Frameworks.

Mit „Bundles“ lässt sich das Framework quasi endlos erweitern.
Ein Bundle ist ein Paket bestehend aus PHP-Dateien, Styles, JavaScript und Assets. Diese sind meist so aufgebaut, dass sie auch in anderen Projekten wiedereingesetzt werden können.

Vorgefertigte Pakete gibt es unter anderem schon für folgende Funktionalitäten: Formulare, Validierung, Templating, Datenbankmanagement und Benutzerverwaltung. Bundles können nach Belieben bzw. Notwendigkeit installiert werden. So kann das Framework von unnötigen Funktionalitäten freigehalten werden.

Zu guter Letzt kann über Symfony noch gesagt werden, dass auch hier wieder ein gut geplanter Release Plan besteht und LTS-Versionen unterstützt werden. Auch mit einer guten Dokumentation und einer großen Community kann Symfony glänzen.

Laravel

Einer der größten Vorzüge Laravels dürfte dessen Bekannt- und Beliebtheit sein.

Erkennbar ist dies z. B. über Google Trends Statistik weiter oben im Beitrag.

Natürlich sollte dies allein kein Grund sein, auf Laravel zu setzen. Aber eine große Community bringt einige Vorteile mit sich. Dazu gehört unter anderem eine detaillierte und umfangreiche Dokumentation. Auch die Anzahl an Tutorials ist weitaus größer als bei anderen Frameworks.

Auch vom Funktions- und Erweiterungsumfang steht Laravel den anderen Frameworks in nichts nach. Laravel bietet auch für die meisten Aufgabenstellungen vorgefertigte Module.

Aber welche Nachteile hat Laravel im Gegensatz zu anderen Frameworks?

Zum einen wäre da die starre Struktur von Laravel. Will man beispielsweise aus dem MVC-Konstrukt ausbrechen, sieht dies bei Laravel eher schlecht aus. Weiter kann es passieren, dass zusätzlicher Code geschrieben werden muss um, um Flexibilität zu gewährleisten.

Frameworks im Überblick

FeatureZend FrameworkSymfonyLaravel
Aktuelle Version
Stand Mai 2019

3.0 (Stable & LTS)4.2 (Stable)
3.4 (LTS)
5.8
LizenzZend Framework LicenseMIT LicenseMIT License
Kommerzieller SupportJaJaNein
LTS-VersionenJaJaJa

Funktionen und Module

MVCJaJaJa
TemplatingNein
(Nachrüstbar z. B. Twig oder Smarty)
Ja (Twig)Ja (Blade)
Dependency InjectionJaJaJa
ORMJa (über Doctrine)Ja (über Doctrine)Ja
InternationalisierungJaJaJa
CRUD GeneratorJaJaJa
(über Fremdlibrary)
LoggingJa (PSR-3)Ja (PSR-3)Ja (PSR-3)
Testing FrameworkPHPUnitPHPUnitPHPUnit

Security

XSSJaJaJa
CSRFJaJaJa
SQL-InjectionJa (über Doctrine)Ja (über Doctrine)Ja
Auth ModulJaJaJa

Unsere Entscheidung: Symfony

Spätestens in der Übersichtstabelle lässt sich erkennen, dass sich die Frameworks im Funktionsumfang sehr ähneln. Faktoren außerhalb des Funktionsumfangs die uns wichtig waren sind eine gute Struktur, Zuverlässigkeit und Zeitersparnis durch das Verwenden von schon vorgefertigten Modulen.

Gleichzeitig wollten wir aber auch die Freiheit aus dem Konstrukt ausbrechen zu können nicht verlieren.

Diese Punkte sind unserer Meinung am besten bei dem Framework Symfony gegeben. Aber letzten Endes muss natürlich jeder für sich selber entscheiden, welchem dieser Frameworks man zugetan ist.

Vielleicht hat euch dieser Beitrag auch geholfen, euch für ein Framework zu entscheiden. Oder seid ihr anderer Meinung als wir und nutzt ein anderes? Lasst es uns in den Kommentaren wissen!

Unser Entwickler-Team kann dich bei deinen PHP-Projekten natürlich auch unterstützen. Hierzu kannst du uns gern kontaktieren, sodass wir gemeinsam dein nächstes Projekt planen können.

0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.