UX Audit

Wir trainieren dein Team? Buch unsere Workshops, Trainings und Coachings.

Zeigt her!
Close

Warum PHP mit dem Laravel Framework wieder Spaß macht

14. August 2013, von Christoph
Liechtenecker Büro

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.

Du willst mit jemanden über das Thema plaudern?

Einen kostenlosen Termin mit CEO Susanne vereinbaren!

Christoph Rumpel

Meine Rolle bei Liechtenecker: - Wenn es weder IT noch Digitalisierung gäbe, wäre mein Beruf: - Mein Herz schlägt für: -
27 Kommentare.
Kommentar verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
Dennis
29. Juli 2018 um 12:03

Ist ja alles schön ung gut, aber ich verstehe einfach nicht, warum dieses und auch andere Frameworks immer so kompliziert aufgebaut werden. Da gibt es immer diese riesen Hürde mit dem vermalledaiten Composer. Eine einfache Install Funktion wäre da viel einfacher, und dass das geht, das zeigt uns z.B. Next Cloud. Selbst solche Dinge wie Rocket Chat. Das ist immer mit Hürden verbunden und man muss einfach sagen, dass die wenigsten einen eigenen Server mit Shell Zugriff haben. Sicher, man kann das auch Lokal machen, aber mal ehrlich, muss das so verkompliziert werden? Dieser Trend nervt einfach und ist alles andere als ein Vorteil.

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
Daniel
30. Mai 2018 um 05:56

Ich bin gerade dabei mich in Laravel einzuarbeiten. Begeistert bin ich bisher nicht. Intern scheint sehr vieles über magic methods gelöst zu sein. Dadurch werden Krücken wie ide-helper.php benötigt, um überhaupt noch sinnvolle Codevervollständigung zu haben. Blade als Template-Engine finde ich ok, auch wenn sie was „separation of concerns“ betrifft Twig unterlegen ist. Ich finde es eigentlich besser, wenn die Template-Engine unterbindet, jeglichen PHP-Code im Template auszuführen. Business-Logik oder Datenabfragen gehören da schlicht nicht hin.
Gleiches gilt für Eloquent. Es implementiert das Active Record Antipattern und man arbeitet mit Datenklassen die von einer umständlichen Hierarchie erben und alles selber können (müssen?). Das ist in Doctrine besser gelöst, dort sind die Datenklassen schlank und werden über Datenmanager befüllt.
Nicht dass ich ein großer Fan von ORMs im Kontext von PHP wäre – was die Performance angeht, sind die Dinger in vielen Fällen Overkill, trotz oder gerade dank Lazy Loading und anderem Krempel, der auf den ersten Blick im Hintergrund passiert.
Wenn man wie ich von Symfony2/3 kommt ist vieles ernüchternd. Anderes ist auch super. Umgebungsinformationen über .env bereitstellen finde ich super. Autowiring von praktisch allen Klassen: sehr angenehm.
Als sauber empfinde ich den Laravel Code trotzdem nicht. Er ist oft kurz und knackig aber das ist nicht das Gleiche.

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
    Karl
    13. Mai 2022 um 15:22

    Wenn auch inzwischen viel Zeit vergangen ist, aber ich mache gerade genau das selbe durch. Ich komme aus dem professionellen Symfony 5/6 Umfeld und versuche mich gerade in Laravel 9 einzuarbeiten. Allein schon, dass man Hilfsmittel wie IDE-Helper benötigt um den Code für PHPStorm und phpStan lesbar zu machen fand ich erschreckend. Für alles gibts Klassen und nochmal Facades und dann nochmal globale Funktionen und überall Magic und für alle Plain-PHP Methoden gibts nochmal Wrapper. Ich habe inzwischen schon das Gefühl eine neue Sprache zu lernen.

Sascha
16. Mai 2015 um 09:27

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)

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
    Christoph Rumpel
    26. Mai 2015 um 08:34

    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!

Christoph Rumpel
29. Juli 2014 um 09:22

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 🙂

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
29. Juli 2014 um 00:58

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.

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
24. März 2014 um 20:28

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.

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
    Christoph Rumpel
    25. März 2014 um 09:27

    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 =)

Christoph Rumpel
7. Februar 2014 um 08:43

Super Idee Vincent. Mein Like hast du schon mal 🙂

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
6. Februar 2014 um 22:53

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.

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
Christoph Rumpel
7. Januar 2014 um 10:56

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

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
7. Januar 2014 um 10:52

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)

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
Jan
8. Dezember 2013 um 18:25

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

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
Christoph Rumpel
6. November 2013 um 14:23

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

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
6. November 2013 um 13:23

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.

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
Christoph Rumpel
14. August 2013 um 14:58

@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 🙂

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
14. August 2013 um 14:52

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

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
14. August 2013 um 14:51

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!

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
Christoph Rumpel
14. August 2013 um 12:44

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

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
14. August 2013 um 11:53

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.

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
Technologie – Blogbeitrag

Die Macht von PHPStan: Fehlererkennung und Codequalität in der PHP-Entwicklung

21. März 2024, von Daniel

In der Welt der Webentwicklung ist die Qualität des Codes von entscheidender Bedeutung. Schlecht geschriebener Code kann zu Bugs, Sicherheitslücken und ineffizienter Leistung führen. PHPStan ist ein leistungsstarkes statisches Analysetool, das dazu beitragen kann, die Codequalität zu erhöhen und Bugs frühzeitig zu erkennen. In diesem Beitrag werden wir uns genauer ansehen, welche Arten von Fehlern PHPStan erkennen kann und welche Aufgaben möglicherweise andere Tools übernehmen müssen.

Jetzt lesen
Liechtenecker Leseliste #62 mit Susanne Liechtenecker
Inspiration – Podcasts

Folge #62 mit Susanne Liechtenecker

27. November 2020

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
Close