Dank Sensiolabs Deutschland gibt es die SymfonyLive Veranstaltungsreihe nun auch in Deutschland. In einer Umgebauten Kirchenruine im Ostteil Berlins gelegen, ist die Stimmung wie gewohnt von Anfang an ausgelassen.

Die Talks lesen sich schon in der Vorschau gut und mit Benjamin Eberlei, einem Core-Developer von Doctrine geht es auch entsprechend los. Sein Vortrag über die Neuerungen in Doctrine seit der Version 2.1 weckt das Interesse sich genauer mit dem Thema auseinander zu setzen. Insbesondere das Thema Filter API und Collection Criteria sind interessant. Die Filter API ermöglicht es Informationen aus z.B. dem Request automatisch in jede Query mit aufzunehmen. So ist es möglich die Sprache aus dem Request als Filter auf die Query anzuwenden oder aus der Session eine Kundennummer zum Filtern der Einträge zu verwenden.

Das Collection Criteria ermöglicht es auf einem Ergebnis einer Abfrage eine weitere Abfrage mittels eines Criterias zu definieren. Dies wird je nach Situation in SQL Umgewandelt und direkt aus der Datenbank gelesen oder als Filter auf den vorhandenen Daten angewandt.

Hugo Hamon, Head of Training von Sensiolabs Frankreich hat einen Talk über die Serializer Komponente von Symfony gehalten. Ein Thema bei dem ich Anfangs dachte das es recht trocken und wenig interessant wird, ich mich aber innerhalb kürzester Zeit eines besseren belehren lassen musst. In dem Vortrag ging es auch um die Möglichkeiten mittels der Komponente JSON und XML Schnittstellen zu realisieren und wie diese mit einfachen Mitteln auch versioniert werden können. Im Konkreten Beispiel wurde die Versionierung über den Accept-Header realisiert, was es erlaubt unterschiedliche Versionen der API auf dem selben Endpoint zu betreiben.

Im Zusammenhang damit wurde auch das JMSSerialzerBundle erwähnt, welches einem bei diesen Aufgaben gute Unterstützung zur Verfügung stellt. Interessant ist in diesem Bundle auch das Twig Plugin, welches es einem ermöglicht innerhalb eines Templates Informationen zu serialisieren, um diese z.B. per Ajax an den Server weiterzureichen.

https://speakerdeck.com/hhamon/introduction-to-serialization-with-symfony2

Einen lockeren und sehr Aufschlussreichen Talks hat Fabrice Bernhard über die Modernisierung von Legacy Anwendungen gehalten. Im Kern ging es um die Portierung von alten Anwendungen in modernere Strukturen und Optimierung der Wartbarkeit des Codes. Interessant war hier auch was unter Legacy Verstanden wird. Dabei handelt es sich um Anwendungen die unter PHP 5.0 und symfony 1 laufen. in meinen Augen nicht wirklich Legacy, aber die Tipps und Ideen wie man an solch eine Aufgabe heran geht sind die gleichen wie für noch ältere Anwendungen. Hier wurde auch auf die Problematik eingegangen, den Entscheidern diesen komplexen und aufwändigen Schritt schmackhaft zu machen. Denn bei den Verantwortlichen wird häufig das Problem nicht gesehen, welches entsteht, wenn die Codebasis nicht auf einen sauberen Stand gebracht wird. Das Zitat dazu war:

Before the big eat the small, nowadays the fast eat the slow ...

Ein sehr gutes Argument, wie ich finde.

http://de.slideshare.net/fabrice.bernhard/modernisation-of-legacy-php-applications

Ein weiterer Bemerkenswerter Vortrag kam von Bernhard Schussek dem Entwickler des Form-Frameworks in Symfony2. Mit seiner Ansage, dass er alle Zuhörer in 30 Minuten zum Form Master machen will, hat er sich auch nicht zu weit aus dem Fenster gelehnt: sein Vortrag war kurzweilig und sehr informativ.

https://speakerdeck.com/bschussek/symfony2-form-tricks

Am Folgenden Tag gab es an anderer Stelle (mit einem viel zu schwachen W-Lan) den Hackday. Es kamen mehr Leute als erwartet und so war es recht gemütlich. Nach längerer Zeit habe ich die Chance genutzt und mich um die offenen Pull-Requests des Stomp Clients gekümmert und auch gleich noch eine Einbindung in Travis-CI vorgenommen.

Es war eine schöne Konferenz mit interessanten Talks und ebenso interessanten Leuten. Vielen Dank ans networkteam!

Symfony ist ähnlich wie TYPO3 Flow ein Application Framework welches die Entwicklung von Webanwendungen erleichtert und für viele Anwendungsfälle vorgefertigte Komponenten zur Verfügung stellt.