Warum PHP mit dem Laravel Framework wieder Spaß macht

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.

php_laravel_framework_kreis

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.

Über den Autor

Christoph Rumpel

Meine Rolle bei Liechtenecker:
Meister des Backends, Erforscher zukünftiger Technologien und Trends, liebt Communities und strebt danach, das Web für alle zu verbessern.

Wenn es weder IT noch Digitalisierung gäbe, wäre mein Beruf:
Barkeeper oder Surf-Lehrer in Portugal oder Bali (wo die Sonne den ganzen Tag scheint und die Natur noch das Leben bestimmt)

Mein Herz schlägt für:
Das Web, PHP, Pi, virtuelle Sonntags Spaziergänge durch Uncharted, Sport, auf cleanen Wellen in Ericeira surfen.

Du hast etwas zum Artikel zu sagen? Schreibe es nieder

Schreibe einen Kommentar

Kommentare

  • Sehr interessanter Beitrag. Besonders gefällt mir, der Hinweis darauf, dass es, mit diesem Framework, wieder “Cool” wird, PHP zu nutzen. Der einzige wirkliche Nachteil ist, dass ich auch sehe, dass es noch nicht wirklich viele Entwickler gibt, welche sich in diesem Framework wirklich gut auskennen.

    Habe selbst ein wenig zum Thema geschrieben (Vorsicht: Ich bin kein Experte zu Laravel, stele aber für einen Kunden einen Laravel Entwickler bereit, daher das Interesse am Thema): http://www.yuhiro.de/vorteile-und-nachteile-des-laravel-frameworks/ Deinen Artikel habe ich darin auch verlinkt :)

    Es ist sicherlich wichtig, dass es Frameworks gibt die ein sauberes Arbeiten ermöglichen (wenn ich mir überlege, welche Aufwände es manchmal macht, alte PHP Codierungen zu pflegen und weiterzuentwickeln)

    • Hey Sascha,

      danke freut mich. Es hat sich aber schon wieder viel getan seit dem Artikel. PHP selbst ist einfach viel besser schon als vor einigen Jahren und deshalb gibt es jetzt auch viele Tools und Frameworks die wieder Spaß machen für den Entwickler. (Laravel, Composer, Slim, Symfony…)

      Im deutschsprachigen Raum stimme ich dir zu, da gibt es vielleicht noch nicht ganz so viele Laravel Entwickler, aber international ist das anders. Das wird sicher aber auch sicher bei uns bald ändern. Laravel entwickelt sich rasend schnell und bietet bereits zahlreiche Produkte neben dem Framework an. (Forge, Envoyer, Lumen, Homestead, Elixer usw.)

      Ja stimmt, man muss ja nicht immer alles neu erfinden und da ist ein Framework sicher sehr hilfreich.

      lg

      PS: Danke für die Verlinkung!

  • Danke Luke! Das freut uns zu hören.

    Stimmt. Schwächen gibt es leider immer, aber ich glaube wir können sehr froh sein wie sich Laravel entwickelt und hoffentlich macht der Taylor genau so weiter.

    Zum Glück werden Packages auch immer besser und mehr :-)

  • Sehr schöner Blog! Finde es schön wie ihr als “Unternehmen” auch dazu beitragt anderen mit eurem Wissen unentgeltlich zu dienen. Echt stark!

    Zu Laravel muss ich sagen: Ich hab schon mit ZF, CodeIgniter und CakePHP gearbeitet und hab mich an einem eigenen Framework versucht. Schlussendlich bin ich bei Laravel geblieben und mehr als glücklich damit. Meiner Meinung nach eins der besten, wenn nicht gar DAS beste PHP-Framework dass es aktuell auf dem Markt gibt. Dennoch mit einigen Schwachstellen noch.. aber dazu gibt es ja Packages und zunehmend Blogs die Lösungen vorstellen.

  • Der Beitrag fasst sehr gut die Komponenten zusammen, die Laravel in meinen Augen von anderen ähnlichen Frameworks abhebt. Ich beschäftige mich selbst sehr gerne mit Laravel und bin immer wieder auf’s Neue begeistert.

    • Hi Johannes,

      danke! Da stimme ich dir zu. Beim Arbeiten kommt man erst auf die vielen Details die das Framework ganz besonders machen. Im Mai können wir uns auch schon wieder auf Version 4.2 freuen =)

  • Super Idee Vincent. Mein Like hast du schon mal :-)

  • Ich habe mich auch für Laravel entschieden. Es ist wirklich ein tolles Framework. Wir versuchen gerade die deutsche Community voran zu bringen. Unter http://fb.com/laravel.de ist die deutsche Seite für Laravel Entwickler, wir suchen gute Leute, die Lust haben die Seite zu pflegen.

  • Es geht weiter voran=)
    Auch die aktuelle 4.2 Version hat wieder tolle Neuerungen parat.

  • Ich persönlich finde Laravel eines der gelungensten Frameworks mit man auch wirklich gerne arbeiten möchte. BTW: Mittlerweile hat Laravel sogar alle anderen auf GitHub überholt. (watchers)

  • Ich bin seit Laravel 2 ein Fan von diesem Framework. Meiner Meinung eines der besten. Was ich erfreulich finden würde, wenn es auch eine deutsche Community geben würde, wie bei ZF. Mittlerweile gibt es genügend deutsche Entwickler. Und es gibt viele Bücher über Laravel.

    LG Jan

  • Ja das stimmt Dirk, die Dokumentation ist noch nicht komplett. Zum Glück tut sich hier aber was und sie wächst stetig :-)

  • Ich kann euch nur zustimmen. Mit Laravel zu entwickeln ist wirklich ein Vergnügen.

    Sowohl die Dokumentation als auch die Community ist sehr gut. Zwar nicht ganz so umfangreich wie bei ZF oder Symfony, aber man bekommt eigentlich immer Hilfe zu aktuellen Problemen.

  • @Roman: Vielen Dank!

    @Heiko: Ja ich denke auch da muss sich die Frameworks im Detail ansehen und für sich selbst entscheiden, mit welchem man arbeiten möchte. Zum Glück gibt es ja genug Auswahl :-)

  • Hi,

    interessanter Aritkel der hoffentlich bei einigen Lust auf mehr macht. Hab schon mit Symfony gearbeitet und jetzt seit einiger Zeit mit Laravel und muss sagen… Laravel ist spitze.

    @Heiko: Der Punkt das Symfony das auch alles “kann” ist schon richtig, aber die Art WIE Laravel Probleme löst und die wunderschöne Syntax und interne Architektur heben es für mich ein schönes Stück über Symfony.

    Was ich bei Laravel besonders mag ist die Benutzerfreundlichkeit. Eine klare Doku und eine leicht verständliche Struktur geben jedem Entwickler absolute Freiheit im Arbeiten mit dem System und Kernkomponenten können super simpel ausgetauscht werden.

    Bin gespannt ob ihr (hoffentlich) bald alle Projekte auf Laravel Basis macht.

    lg
    Roman

  • Jo den Beitrag kenne ich ;) Müsste ich mich wohl mal mehr mit Laravel beschäftigen um das wirklich entscheiden zu können.

    Aber vielen Dank für deine Antwort!

  • Hey Heiko,

    vielen Dank!
    Selber habe ich leider noch keine Erfahrung mit Symfony2, aber soweit ich weiß ist hier der Einstieg schwieriger. Der Einstieg in Laravel war für mich, nach CodeIgniter und Zend, relativ simpel.

    Aber wie du schon gesagt hast gibt es sehr viele Ähnlichkeiten zwischen diesen Frameworks und Laravel verwendet sogar einige Komponenten von Symfony.

    Hier habe ich aber ein Kommentar von Taylor Otwell (Laravel Gründer) genau zu diesem Thema gefunden.

    Hoffe das hilft dir weiter.

    lg

  • Hej!

    Erst einmal vielen Dank für deinen Beitrag.
    Ich bin in letzter Zeit auch immer wieder über Laravel gestolpert.
    Ich stelle mir nur die Frage, was der Vorteil gegenüber Symfony2 ist? So weit mir bekannt werden ja auch sehr viele Symfony2-Komponenten genutzt?
    Hast du beide Frameworks eingesetzt und kannst dazu was sagen? War Laravel für die “zugänglicher”?

    Ich selber kenne nur Symfony2 und finde da eigentlich auch alle Dinge die du im Beitrag beschreibst – und zur Zeit wohl auch die größere Community.