Open Source im professionellen Einsatz

© Irina MANSIEUX, Fotolia.com

PHP-Frameworks im Überblick

Viel Holz für den Rahmen

Wer sich mit PHP eine Website zimmern möchte, freut sich über die große Zahl an vorfertigten Rahmenwerken. Das Linux-Magazin prüft Funktionsumfang und Komfort der besten Frameworks.

Wie erfahrene Zimmerleute setzen auch PHP-Entwickler auf fertige Formteile, um das Gerüst eines neuen Projekts aufzustellen. Frameworks sparen Zeit und duplizierten Code. Doch vor dem virtuellen Hammerschwingen steht das Suchen der geeignetsten Umgebung.

Große Resonanz

Bis etwa 2005 gab es kaum Allzweck-Frameworks für die beliebte Websprache jenseits des Angebots von Zend, der PHP-Firma der ersten Stunde. Vorbilder aus der Java-Welt stießen in der Community auf wenig Gegenliebe. Als jedoch 2004 Rails die handliche Skriptsprache Ruby um ein Webframework erweiterte, war die Resonanz in der PHP-Welt groß. Auch viele PHP-Entwickler erlagen dem Charme des Rapid Application Development (RAD).

Die PHP-Szene ist trotz der zentralen Stellung der Firma Zend nicht hierarchisch organisiert und zudem riesengroß. Daher fühlten sich bald viele dazu berufen, Rails-ähnliche Frameworks für PHP zu entwickeln. An die hundert Projekte finden sich im Internet, die die wenig aussagekräftige Bezeichnung Framework tragen. Wer auf der Suche nach einem für sein Projekt und seinen Programmierstil geeigneten Angebot nichts verpassen möchte, sollte mindestens Cake PHP, Codeigniter, Kohana, Prado, Symfony, Yii und das Zend Framework in Betracht ziehen (siehe Tabelle 1).

Tabelle 1:
PHP-Frameworks

 

Kategorie

CakePHP [1]

Codeigniter [2]

Kohana [3]

Prado [4]

Symfony [5]

Yii [6]

Zend Framework [7]

Version

1.2.4.8284

1.7.1

2.3.4

3.1.6

1.2.8

1.0.8

1.9.1

Lizenz

MIT

BSD-artig

BSD-artig

BSD-artig

MIT

BSD-artig

BSD-artig

Freshmeat-Popularity

195.16

nicht gelistet

49.05

194.98

165.29

234.14

97.72

Ohlo-Users

885

80

58

15

173

17

254

Ohlo-User-Rating

4,5/5 (269 Stimmen)

4,5/5 (36 Stimmen)

4,7/5 (29 Stimmen)

4,1/5 (12 Stimmen)

4,4/5 (75 Stimmen)

4,9/5 (8 Stimmen)

4.0/5 (122 Stimmen)

Codeumfang nach Ohloh.net (Mannjahre Entwicklungszeit)

84 Mannjahre

9 Mannjahre

6 Mannjahre

70 Mannjahre

796 Mannjahre

45 Mannjahre

752 Mannjahre

Funktionsumfang

* * * * 

* * 

* * * 

* * * * 

* * * * * 

* * * * 

* * * * * 

Ohloh-Codeanalyse

großes, aktives Entwickler-Team; etablierte Code-Basis;
über die Jahre hin abnehmende Entwicklungsaktivität

etablierte Code-Basis; zahlreiche Code-Kommentare; über
die Jahre hin abnehmende Entwicklungsaktivität

sehr großes, aktives Entwickler-Team

etablierte Code-Basis; zahlreiche Code-Kommentare; über
die Jahre hin abnehmende Entwicklungsaktivität

sehr großes, aktives Entwickler-Team; über die Jahre
wachsende Entwicklungsaktivität; zahlreiche Kommentare im
Code; etablierte Code-Basis

kurze History des Code-Repositories; wenig Kommentare im Code;
kleines Entwickler-Team

sehr großes, aktives Entwickler-Team; zahlreiche
Kommentare im Code

Vorauswahl

Auch diese sieben Frameworks lassen sich aus vielen Blickwinkeln evaluieren, der Artikel greift daher die archetypischen Vertreter heraus: Er schließt Cake PHP und Prado als Frameworks mit abnehmender Entwicklungsaktivität aus und wählt von den verbleibenden fünf die drei interessantesten: Yii gilt als Shootingstar, ist performant und bei seinen Anwendern beliebt. Symfony hat eine große Community und ein großes Entwicklerteam. Das Zend Framework ist im Unternehmensumfeld klar die Nummer 1 und hat, wie schon ein Blick in das Inhaltsverzeichnis der Dokumentation zeigt, mit Abstand den größten Funktionsumfang. Kerneigenschaften der restlichen Frameworks fasst der Kasten "Die Alternativen" zusammen. Auch darüber hinaus gibt es Dutzende weiterer Projekte, die aber oft nur funktionale Nischen füllen.

Die Alternativen

Cake PHP war eines der ersten leistungsfähigen PHP-Frameworks, hat aber in den letzten zwei Jahren etwas an Zugkraft eingebüßt. Es unterstützt noch PHP 4, sein Quellcode muss daher ohne private Methoden und Attribute auskommen. Umfang und viele Konzepte ähneln dem Newcomer Yii, können sich aber mit dessen Performance nicht messen.

Prado ist kein MVC-Framework, sondern setzt auf Event-gesteuerte Programmierung: Der Controller als Bindeglied zwischen Model und View entfällt, dafür registriert der Entwickler Eventhandler direkt im Page-Template, der Entsprechung zur View. Der Codeschnipsel »<com:TButton Text="Save" OnClick="saveButtonClicked" />« im Page-Template ruft automatisch die Callback-Funktion »saveButtonClicked()« auf [28].

Codeigniter ist Favorit des PHP-Schöpfers Rasmus Lerdorf: "Es ist schneller, leichtgewichtiger und fühlt sich am wenigsten wie ein Framework an", sagte er auf der Froscon 2008. Als dem einzigen vorgestellten Framework fehlt Codeigniter ein Object Relational Mapper (ORM).

Kohana startete im Mai 2007 als Fork von Codeigniter, doch schon ein halbes Jahr später schrieben es seine Entwickler für die Version 2.0 von Grund auf neu. Von Codeigniter blieb die hohe Gewichtung der Geschwindigkeit, mit der es Seiten ausliefert. Mit Version 2.1 ist ein ORM hinzugekommen. Um übersichtlicher zu werden, unterstützen seine Macher seither HP 4 nicht mehr. Dazu entfernten sie älteren Code, der noch die bei PHP 4 erforderliche Klassensyntax ohne Konstruktoren und vollwertige Kapselung enthielt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook