Kurze Zusammenfassung BEPHPUG Treffen / 1.2.2011 / PHP Frameworks

Am 1.2.2011 ging es in der PHP Usergroup Berlin BEPHPUG um Frameworks. Zunächst wurde die Referentenverspätung genutzt, um eine Stampede mit blauen Elephanten (das PHP Stoffmaskottchen war an dem Abend äußerst beliebt) auszulösen, dann wurden noch Freebies verteilt und es ging los.

Im ersten Vortrag berichtete Fabian Blechschmidt über seine Erfahrungen mit Symfony 1. Er hat 1 Portalprojekt mit circa 30 Stunden an Symfony umgesetzt. Ein wichtiges Merkmal von Symfony ist die Konfiguration via Yaml-Dateien (was am Abend doch eher kontrovers diskutiert wurde). Es gab eine Wortmeldung auf dem Publikum: Vorteile sind die große Community und Möglichkeit Plugins direkt einzubinden, und es gibt für viele Tasks Plugins. Allerdings sei die Performance eher mässig, sonderlich schnell sei das Framework nicht. Erhellend war für mich der Satz des Referenten „ich fühle mich in Symfony besser“ – denn das ist oft auch für mich ein Auswahlmerkmal: entweder man wird mit der Logik einer Software auf einer intuitiven Ebene warm, oder nicht.

Der zweite Vortrag von Michael Schulz behandelte das Zend Framework. Michael arbeitet seit 5 Jahren mit dem ZF. Ein Standardvorwurf an es lautete, dass es „eine große Ansammlung von Komponenten“ sei – also eher Komponentenbibliothek denn Framework. Allerdings sei der modulare Aufbau von Vorteil, wenn man nur einzelne Komponenten nutzen wolle (etwa Zend_pdf). Eine Anbindung an den Zend Server sei möglich, wie Symfony verfüge es auch über ein Command Line Tool.
Auffallend bei der MVC-Umsetzung sei, dass das Model nicht vorgegeben sei – die Logik bei Datenbankabfragen müsse man sich selbst erarbeiten. Auf der Soll-Seite stünden die Action-Stack-Helper als Performancebremsen, auf der Haben-Seite die große und aktive Community sowie die gute Test-Anbindung. Unbedingt empfehlenswert seien die ZendCasts. Der Updateprozess bei ZF Versionen 1 würde problemlos vonstatten gehen(auch da gab es in der Diskussion eine anderslautende Erfahrung).

Im dritten Vortrag hielt Martin Holzhauer ein Plädoyer für Zeta Components. Es ging aus ezComponents hervor und ist bis dato nur via SVN-Checkout zu beziehen. Allerdings sei die derzeitige Version stabil und produktiv nutzbar, da sie direkt die letzte ezComponents Version darstellte. Zeta versteht sich explizit nicht als Framework, sondern als Komponentensammlung. Im Unterschied zu ZF seien diese aber auch wirklich einzeln nutzbar (einzig einer Basiskomponente bedarf es immer), bei ZF dagegen würde man immer recht schnell weitere Komponenenten aufgrund von Abhängigkeiten benötigen. Es wurde anschließend ausführlich über das Lizenzmodell gesprochen, Zeta sei jetzt unter der Apache Lizenz, da das Projekt an die Apache Foundation übergeben wurde. Einzelne Komponenten und Anbindungen wurden vorgestellt (Graph zur Datenvisualisierung, TCPDF-Klasse). Eine MVC-Anwendung sei mit Zeta Components möglich, wurde aber sinngemäß kommentiert mit „bevor man es verstanden hat, lässt man es lieber“.

Sehr kurz fiel dann der vierte Vortrag von Dietmar Erdmann über CodeIgniter aus. Er habe 1,5 Jahre Projekterfahrung mit dem Framework und wolle es kurz an dessen Eigenwerbung messen: eine einfache Lösung, performant, liefert nur minimale Funktionen. Oder: Ein Framework, das kein Framework sein will. Dadurch sei es kein MVC-Framework, das selbst Dateien erzeuge, sondern würde dem User alles überlassen. Es wurde die Frage gestellt, ob man dann ein Framework brauche, wenn „man im Endeffekt alles selbst schreibt“. Und so fielen die Reaktionen zu CodeIgniter insgesamt eher verhalten aus.

Der fünfte Vortrag von Daniel Fahlke erläuterte dann Yii. Dieses setze man am besten ein, wenn eine fertige Datenbank mit Fremdschlüsseln vorhanden sei, daraus würde dann Yii die Model generieren. Möglichkeiten zur Formvalidierungen seien stattdessen nicht umfangreich. Es ging recht ausführlich um die automatisch Codegenerierung ein. Controller und Models würden damit erstellt, Änderungen müssten aber per Hand eingefügt werden
Publikumsmeldung: Cake habe das gleiche Problem, wenn man mit Codegenerator arbeitet)
Doctrine sei eher nicht nutzbar, da Yii eigene DB-Abstraktion nutze. Dazu fiel der Satz: „wer Yii nutzt, will fertig generierte Model nutzen“.
Eine Frage aus dem Publikum zielte auf den Use-Case. Yii solle man am ehesten einsetzen bei einer fertigen Datenbank, an der wenige Änderungen abzusehen seien. Aus dem Publikum wurde das Framework als „Datenbankvisualisierung oder Admin-Backend“ charakterisiert.
Eher ungünstig seien die kaum vorhandenen Tutorials und Dokumentation, dazu scheint sich die Arbeit auf wenige Entwickler zu beschränken, die unter Zeitdruck stünden. Alles in allem, wollte an dem Abend niemand einer Einschätzung wie auf http://www.phpframeworks.com/top-10-php-frameworks/ folgen, wo Yii derzeit auf Platz 1 gelistet wird. Es gab noch eine Bemerkung, das Yii zu Beginn an viele aktuelle Programmiertechniken wie Closures – teils aber nur um ihrer selbst willen – eingesetzt hätte, was seine Beliebtheit erklären könne. Die Diskussion brachte aber noch eine andere interessante Frage hervor: was sind Auswahlkriterien für Frameworks? Eines davon z.B., wie viele Entwickler an dem Projekt arbeiten.

Alles in allem hat der lange Abend dann doch Licht ins Dunkel der PHP Frameworks gebracht. Denn abseits von Leistungsbeschreibungen zählen dann doch die Praxiserfahrungen. Und da stellte sich für mich die Lage doch anders da, als erwartet. Das von mir genutze CakePHP kam in einigen Randbemerkungen vor, wurde aber nur von wenigen Anwesenden in einer „Wer nutzt welches Framework“-Fragerunde genannt.

Advertisements
Dieser Beitrag wurde unter Programmierung veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s