Immer auf der Suche nach neuen Werkzeugen und Features und Umsetzungsmöglichkeiten kommt dieses Mal ein Praxistest aus unserer Programmierung: Das Thema sind Frameworks- in diesem Fall Laravel. Wir haben es im Hinblick auf Möglichkeiten und Grenzen ausgiebig getestet…
„Moment, schon wieder ein neues PHP-Framework? Muss das sein?“ werden sich sicherlich viele PHP-Entwickler fragen. Die PHP-Welt ist überflutet von Frameworks und nur die wenigsten schaffen es aus der Masse hervorzustechen. Laravel gehört unserer Meinung nach dazu.
Nach längerem Ausprobieren von diversen Frameworks, darunter Forks von CodeIgniter, Kohana oder FuelPHP sind wir über einen Blogpost auf das Framework Laravel (Version 3, welche wenige Tage zuvor erschienen war) gestoßen. Der Einstieg wird einem durch die einfache Syntax ungemein erleichtert, man kann quasi direkt damit beginnen, die ersten kleinen Testprogramme zu schreiben. Doch nicht nur das lässt einen schnell zum Laravel-Evangelisten werden.
Was ist an Laravel besonders?
Die Frage, die wir uns gestellt haben: Was hebt Laravel von der breiten Masse an Framework-Angeboten ab? Hierzu muss man zuerst einen Blick auf PHP selbst werfen: obwohl man PHP als den Standard in Sachen Webprogrammierung bezeichnen kann, eines ist es nicht: modern. Besonders in den letzten Jahren sind daher viele Web-Developer zu Sprachen wie Python oder Ruby gewechselt. Und hier kommt Laravel ins Spiel: Man könnte Laravel quasi als PHP-Framework der neuen Generation bezeichnen.
Taylor Otwell, der Entwickler hinter Laravel, hat sich von diversen Frameworks anderer Sprachen (darunter Rails, Sinatra oder .NET) inspirieren lassen und versucht das Beste dieser Frameworks in die PHP-Welt zu übertragen. Und dies ist ihm unserer Meinung nach gelungen. Hinzu kommt, dass Laravel sich stetig weiterentwickelt und Stück für Stück erwachsener und noch besser geworden ist.
Der Praxistest: Features von Laravel
Composer
Die größte Änderung mit Einführung von Laravel Version 4 im Mai letzten Jahres stellt vermutlich die Integration von Composer dar. Composer ist ein Dependency Manager für PHP und ist seit dem letzten Jahr nicht mehr aus der PHP-Entwicklung weg zu denken. Wer noch nicht mit Composer arbeitet, sollte es sich unbedingt anschauen. Vergleichbar ist es beispielsweise mit RubyGems.
Migration
Wer schon einmal mit Rails gearbeitet hat, wird Migrations kennen. Alle anderen werden sie schätzen und lieben lernen. Doch was sind Migrations? Unter Migrations versteht man eine Versionierung von Datenbankschema-Änderungen. Bisher mussten Änderungen zwischen den am Projekt beteiligten Programmierern kommuniziert werden. Oft wurden beispielsweise SQL-Dateien per Mail hin und her geschickt, so dass jeder Entwickler seine lokale Entwicklungsdatenbank auf den aktuellen Stand bringen konnte. Dank Migrations hat dies ein Ende. Datenbankänderungen werden in einzelnen Dateien festgehalten und können einzeln ausgeführt oder rückgängig gemacht werden. Dabei hält Laravel vor, welche Migrations bereits eingespielt wurden und welche ggf. noch fehlen, beispielsweise wenn ein Kollege neue Änderungen vorgenommen hat. Mit einem einfachen Befehl können diese Änderungen nun in die eigene Datenbank übernommen oder auch wieder rückgängig gemacht werden.
ORM: Eloquent
ORMs werden immer beliebter. Dabei werden Datenbanktabellen durch Objekte repräsentiert, so dass man recht einfach auf Datenbankinhalte zugreifen kann, ohne auch nur ein Wort SQL zu schreiben. Natürlich kommt Laravel direkt von Haus aus mit einem eigenen sehr mächtigen ORM: Eloquent.
Template Engine: Blade
Template-Engines wie Smarty gibt es schon seit geraumer Zeit und sind aus der Webentwicklung kaum noch wegzudenken. Laravel kommt mit einer eigenen Template-Engine namens Blade daher. Insgesamt lässt sich sagen, das Blade sehr einfach zu nutzen ist und das Arbeiten mit Templates einfacher und vor allen Dingen übersichtlicher wird.
Tests
Tests sind aus der PHP-Welt nicht mehr wegzudenken. Daher basiert Laravel auf der Voraussetzung, dass alles in Laravel getestet werden kann. Zusätzlich bringt das Framework einige eigene Testmethoden für PHPUnit mit, um das Testen von Programmen zu vereinfachen.
Community
Die Community hinter Laravel ist sehr freundlich und hilfsbereit und wächst von Tag zu Tag. Wer schnell Hilfe sucht, sollte also einfach mal im IRC auf freenode in #laravel reinschauen. Es sind derzeit rund um die Uhr 300 – 400 Leute online, so dass sich bestimmt jemand findet, der helfen kann. Hier muss angemerkt werden, dass auch Taylor sich die Zeit nimmt, immer wieder Fragen zu beantworten. Hier gibt es also keine Zweiklassen-Gesellschaft, hier ist niemand besser als jemand anderes nur weil er beispielsweise auf einem bestimmten Gebiet mehr weiß. Jeder wird freundlich aufgenommen und gleich behandelt.
Syntax
Zur Syntax von Laravel kann man nicht viel sagen außer: einfach und sprechend! Auf Kommentare im Quellcode kann zu großen Teilen verzichtet werden, da die Syntax für sich spricht und das Arbeiten mit Laravel einfach und angenehm macht. Beispiele:
Best Practices
Die einfache Syntax erlaubt einen schnellen Einstieg in Laravel, doch sollte man sich nicht davon täuschen lassen. Unterhalb der Oberfläche ist Laravel recht komplex, aber auch sehr durchdacht aufgebaut. Sobald man in den Quellcode von Laravel eintaucht, wird man feststellen, dass hier viele Prinzipien verwendet werden, die heute als Best Practices der Programmierung gelten.
Foundation: Symfony2 Components
Die Basis von Laravel 4 bilden Symfony2-Komponenten wie beispielsweise HttpKernel. Laravel baut also auf einer soliden Grundlage auf, die sich auch im Businessumfeld bewährt hat. Allerdings bietet Laravel eine wesentlich einfachere Syntax als Symfony, so dass die Einarbeitungszeit deutlich geringer ausfällt.
Fester Release-Cycle
In Anlehnung an den Symfony-Release-Cycle hat sich Taylor mit Version 4 dafür entschieden, auch jedes halbe Jahr einen neuen Release zu veröffentlichen. Laravel 4 wurde im Mai 2013 veröffentlicht, Version 4.1 im November bzw. Dezember 2013. Somit kann bei der Realisierung von Applikationen besser geplant werden.
Das Fazit: Absolut empfehlenswert
Laravel hat frischen Wind in die PHP-Szene gebracht und wir können uns dem allgemeinen Lob nur anschließen. Das Framwork bietet eine Menge wirklich nützlicher Werkzeuge, um Projekte schneller und sicherer umzusetzen. Es ist wunderbar geeignet für Projekte jeder Größe, von einem einfachen RESTful Webservice bis hin zur ausgewachsenen Enterprise-Applikation.
Wir können PHP-Entwicklern ans Herz legen, sich Laravel selbst einmal anzuschauen. Die ersten Projekte wurden bei De-Media bereits mit diesem Framework umgesetzt. Unserer Meinung nach könnte Laravel eines der beliebtesten Frameworks in 2014 werden.
Bildquele: https://laravel.com/