Was ist Laravel?
The PHP framework for web artisans
Allein der Slogan auf der offiziellen Website signalisiert, dass Laravel neue Wege gehen möchte: Vom PHP Handwerker zum PHP Künstler.
Was aber ist Laravel eigentlich und warum muss man davon schon gehört haben?
Beginnen müssen wir aber woanders und zwar bei PHP. PHP ist eine beliebte und etablierte Programmiersprache. Dutzende Frameworks und Content Management Systeme, die das Arbeiten damit vereinfachen und verbessern stehen bereit. PHP ist quasi ein Standard unter den dynamischen Programmiersprachen, aber so viel man PHP zu Gute halten kann und muss, eines ist es mit Sicherheit nicht (mehr): modern.
Besonders in den letzten Jahren sind Programmiersprachen wie Ruby und Python immer beliebter geworden. Sie sind „cool“ und sprechen den Coder-Nachwuchs besser an. PHP ist leider etwas in die Jahre gekommen und das merkt man.
Das ist genau der Punkt wo Laravel ins Spiel kommt. Es sieht sich als PHP Framework der neuen Generation und genau damit macht es sich so beliebt. Inspiriert von Ruby on Rails und .NET hat Taylor Otwell Laravel erschaffen um das Beste aus PHP herauszuholen und zu beweisen, dass hier mehr möglich ist. Außerdem war er mit den anderen PHP Frameworks nicht zufrieden. Sie sind nicht mehr zeitgemäß. Er wollte Entwicklern nicht nur helfen produktiver zu sein, sondern auch zeigen, dass sauberes Programmieren mit PHP auch wieder Spaß machen kann.
Aber schauen wir uns im Detail an, was Laravel so spannend macht und wodurch es sich von anderen Frameworks unterscheidet.
Packages
Die größte Änderung in Laravel 4 (derzeitige Version) stellt die Einführung vom PHP packaging system Composer dar. Core Updates, aber auch das Einbinden von third-party code wird damit zum Kinderspiel. Zu Anfang kann dieses System aber auch leicht verwirrend sein, da es für Laravel 4 vorausgesetzt wird und erst einmal installiert werden muss. Sobald man aber diese kleine Hürde gemeistert hat, wird man Composer lieben lernen. Hier hat man sich das Paketsystem RubyGems von der Programmiersprache Ruby als Vorbild genommen.
Eloquent
Eloquent ORM ist ein Konzept zum Abbilden von Objekten in relationale Datenbanken. Das bedeutet in unseren Fall, dass wir PHP Objekte und Klassen auf Tabellen und Zeilen „mappen“. Für jede Datenbank Tabelle gibt es ein entsprechendes Model, wodurch kommuniziert wird. Eloquent ist in Laravel von Haus aus integriert und extrem mächtig.
There are many ORM solutions out there, but none as Eloquent as… well Eloquent – Dayle Rees
Migration
Hier wird es spannend. Wenn ihr schon einmal an einem größeren Projekt mit mehreren Entwicklern gearbeitet habt, wisst ihr wie mühsam es sein kann, die Datenbankstruktur konsistent zu halten. Änderungen müssen hier kommuniziert werden, da sie nicht durch das Versionierungs-Tool der Wahl geteilt werden. Dabei gibt es doch schon länger perfekte Lösungen für das Problem wie bei Ruby on Rails mit Migration. Genau dieses Prinzip findet sich jetzt auch in Laravel wieder.
Aber was ist Migration überhaupt?
Migration ist eine Art Versionierung für Datenbanken. Jede Änderung der Datenbank wird in einer Datei gespeichert und kann später nachvollzogen werden. Außerdem kann jede Anpassung auch leicht zurückgesetzt werden (“rollback”). Da alle Änderungen in Dateien gespeichert sind, kann ich bevor ich zu arbeiten beginne, kontrollieren, ob meine Kollegen Änderungen daran vorgenommen haben. Aber auch wenn ich von einem Produktions-System auf ein Live-System wechsle, kann ich sobald die Datenbank Verbindung besteht alle nötigen Tabellen per Befehl erstellen. Über Artisan werden alle Anpassungen mit einem Befehl erledigt. Nicht nur super praktisch, sondern auch einfach (mehr über Artisan später).
Ein weiterer Vorteil ist, dass man sich den Großteil der Arbeit mit SQL und im phpMyAdmin Bereich erspart. Ehrlich gesagt werde ich beides nicht vermissen.
Hier ein Beispiel wie so eine Migration Datei für eine neue Tabelle aussehen könnte. Aber keine Angst, diese Datei wird automatisch mit einem Befehl gleich für euch generiert.
<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; class CreateUserTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function(Blueprint $table) { $table->increments('id'); $table->string('email')->unique(); $table->string('username'); $table->string('password'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('users'); } }
Neben der Methode, die die Tabelle erstellt, wird auch gleich automatisch eine Methode zum Löschen der Tabelle bereitgestellt.(„down()“)
Blade
Blade ist die template engine von Laravel. Sie ermöglicht das Einbinden von PHP Code in HTML auf einfache und sogar fast schöne Art und Weise. Hierbei helfen zahlreiche Shortcuts. Außerdem lassen sich komplexe Templates und Verschachtelungen leicht realisieren. Insgesamt ist das Arbeiten mit Templates durch Blade einfacher, mächtiger und übersichtlicher geworden.
// Layout Master definieren @extends('layout.master') // Inhalt der section "content" @section('content') // Fehler anzeigen falls vorhanden @if ( $errors->count() > 0 ) <p>The following errors have occurred:</p> <ul> @foreach( $errors->all() as $message ) <li> {{ $message }} </li> @endforeach </ul> @endif // Blade Formular {{ Form::open(array('action' => 'Controller@method')) }} {{ Form::label('name_id', 'Name') }} {{ Form::text('name_id') }} {{ Form::submit('Hinzufügen'); }} {{ Form::close() }} @stop
Artisan CLI
Seit Version 3 gibt es das command-line interface Artisan für Laravel. Ähnlich wie Oli in FuelPHP, ZFTool in Zend oder der Symfony Console vereinfacht Artisan das Arbeiten mit Laravel durch zahlreiche Befehle enorm. Egal ob ich Laravel update oder eine Migration Datei erstelle, Artisan hat den passenden Befehl dafür und kann leicht erweitert werden.
Sexy Syntax
Eine weitere Besonderheit die Laravel so extrem beliebt macht, ist die einfache und sprechende Syntax. Den folgenden Code brauche ich wohl kaum erklären. Die Syntax spricht für sich und macht das arbeiten mit Laravel einfach.
// Laravel Syntax Beispiele $input = Input::all(); $users = User::all(); $user1 = User::find(1); $users = User::with('friends')->whereName('john')->take(3)->get();
Fazit
Laravel bringt neuen Schwung in die PHP Community und ich kann mich dem vielen Lob nur anschließen. Ich kann jedem empfehlen es auszuprobieren, aber natürlich gibt es nie nur die eine richtige Lösung. Andere Frameworks haben auch ihre Vorteile und sind vor allem schon seit Jahren etabliert. Laravel ist noch ein junges Framework, aber auf dem besten Weg das beste und beliebteste zu werden. Wir werden aus jeden Fall weiter testen und im Auge behalten.
Du willst mit jemanden über das Thema plaudern?
Einen kostenlosen Termin mit CEO Susanne vereinbaren!AI-Driven UX - Möglichkeiten, Design-Prinzipien und Pflichten für UX-Designer - 2024 Update
UPDATE 2024: Ausgegraben aus 2019 dieses schmucke Fundstück über AI und UX. Irgendwie drehen sich die Trend-Themen doch alle Jahre im Kreis und man könnte glauben man findet sich diesbezüglich als Bill Murray in "Täglich grüßt das Murmeltier [...]
Jetzt lesenFolge #62 mit Susanne Liechtenecker
In Folge 62 besinnt sich Susanne auf die Anfänge dieses Podcasts und begrüßt keinen Gast, sondern erzählt über das Buch "Jäger, Hirten, Kritiker" von Richard David Precht und warum es sie inspiriert hat.
Jetzt anhören