Was bedeutet Laravel für mich?

Nach jahrelanger Erfahrung mit harter, individueller PHP-Entwicklung war die Entdeckung von Laravel im Jahr 2016 eine wahre Freude. Seitdem ist Laravel mein bevorzugtes Framework, wenn es darum geht, eigenständige Webanwendungen zu entwickeln.

  • Wie hast du Laravel entdeckt?

    2016 war ich an einem Web App Projekt beteiligt, das drei spezifische Anforderungen hatte:

    • Ein umfassendes PHP-basiertes API-System
    • Eine „benutzerorientierte“ Webanwendung (PHP/JavaScript), gesteuert durch diese API
    • Die API der Welt zugänglich zu machen

    Wie ich es damals oft tat, begann ich mit der Erstellung von zwei separaten PHP-Apps, einer für die API und der anderen für die „Front“-App. Etwa bei 30% des Programmierprozesses wurde mir bewusst, dass ich auf ein riesiges Durcheinander zusteuerte. Da ich der einzige Entwickler war, erkannte ich, dass der entstehende Code extrem wartungsintensiv und schwer zu handhaben sein würde.

    Ich machte mich daran, nach einem alternativen Ansatz oder vielleicht einem Framework zu suchen, das auf den Erfahrungen anderer, hoffentlich weiserer Entwickler aufbaut. Nachdem ich einige Optionen geprüft hatte, entschied ich mich für Laravel.

    Ich entdeckte schnell, dass ich alle Projektanforderungen (d. h. die Erstellung der API und der Webanwendung) gemeinsam in derselben Laravel-Instanz umsetzen konnte.

    Das war das erste Mal, dass ich eine echte Laravel-App baute, und zu meiner Überraschung funktionierte sie hervorragend. Dieses Erfolgserlebnis war wirklich beeindruckend. Hinzu kam die exzellente Dokumentation und die Verfügbarkeit anderer Online-Ressourcen, die sicherstellten, dass ich während der Entwicklungsphase selten auf unüberwindbare Hindernisse stieß.

    Was magst du an Laravel?

    Ich liebe die Einfachheit und Geschwindigkeit, mit der man Webanwendungen mit Laravel erstellen kann, sowie die innere Logik, Einfachheit und Robustheit des Frameworks selbst.

    Die meisten Teile einer Webanwendung – Authentifizierung, Routing, Datenbankmanagement, Eventsystem, Templating – sind bereits in das Framework integriert. Als Entwickler liegt es dann an dir, sie an die Business Logik deiner Anwendung anzupassen.

    Die Security Featurs von Laravel sind so nahtlos in das Grundkonzept des Frameworks integriert, dass es tatsächlich sehr schwierig ist, unter Verwendung von Laravel eine Anwendung mit Sicherheitslücken zu entwickeln!

    Nur ein paar Beispiele:

    • In Laravel greifst du niemals direkt auf die PHP-Superglobals ($_GET, $_POST) zu, um Anfragedaten abzurufen. Stattdessen nutzt du die Request-Klasse, die automatisch für Datenvalidierung und -bereinigung sorgt. 
    • Um ein Formular funktionsfähig zu machen, musst du explizit das Cross-Site-Request-Forgery-Token in das Formular einfügen.
    • Wenn du die Datenbankabstraktionsschicht (Eloquent ORM) für deine Datenbankabfragen verwendest, bist du automatisch gegen SQL-Injection, Massendatenzuweisungen usw. geschützt.

    Welche Art von Entwickler bist du?

    Sehr facettenreich!

    Ich habe immer mit einer breiten Palette von Technologien, Frameworks, CMS, Sprachen und Bibliotheken gearbeitet. Ich kann immer noch nicht genau sagen, welche Art von Entwickler ich bin, Back–End oder Front-End … Left-End, Right-End oder No-End 🙂

    Vielleicht beschreibt das neumodische Wort „Full Stack Entwickler“ am ehesten, was ich den ganzen Tag so mache. Andererseits weiß ich wirklich nicht, was „Full Stack“ eigentlich bedeuten soll…

    Kannst du ein paar denkwürdige Laravel-Projekte nennen?

    Projekt 1: Website-Migration & Deployment Tool

    Mir wurde die komplexe Aufgabe übertragen, ein PHP-basiertes System zu entwickeln, das in der Lage ist, Websites von der Production- zur Staging-Umgebung und zurück zu migrieren.

    Zuerst erwog ich, das System direkt mit PHP zu entwickeln, ohne irgendein Framework zu verwenden, aber schnell erkannte ich angesichts der sehr umfangreichen Anforderungen das Risiko, dass dies eines dieser „nie endenden“ Projekte werden könnte. 

    Stattdessen wechselte ich zu Laravel, und zusammen mit dem Bulma CSS-Framework sowie einem Vue.js-Framework (damals das Trio Fantastico!) brauchte ich weniger als einen Monat, um eine funktionierende Alpha-Version der App zu liefern.

    Ich erinnere mich noch gut an die Gesichter meiner Kollegen, als ich anfing, “like a boss” Websites zwischen Servern hin- und herzuschieben 🙂

    Projekt 2: Realtime Bidding Plattform

    Hier bekam ich den Task, für einen unserer Kunden eine vollumfängliche Bidding Plattform für Immobilien zu entwickeln. Die dazugehörigen Daten mussten von einer externen API abgerufen werden, und die Benutzerseite der App musste Multi-User- und Berechtigungs-Features enthalten.

    Das war das erste Mal, dass ich das „Laravel Websockets“-Paket sowie „Inertia.js“ verwendete. Diese beiden Bibliotheken – kombiniert mit Bulma CSS und Vue.js – waren alles, was ich brauchte, um eine „desktop-ähnliche“ Single-Page-App zu bauen, die enorm schnell und einfach zu bedienen war.

    Das Websockets-Paket half mir, die meisten wichtigen Aspekte der Seite zu realisieren: den Biet-Ticker, Echtzeit-Gebote und das Echtzeit-Chat-System.

    Wieder einmal bewies sich Laravel als ein sehr stabiles Framework und blieb gleichzeitig flexibel genug, um für alle Arten von Projekten verwendet zu werden.

    Was magst du besonders an Laravel?

    Entwicklungsgeschwindigkeit

    Es dauert buchstäblich nur ein paar Stunden, um einen Prototyp einer App zu erstellen, mit allen notwendigen Schichten wie: Routen, Vorlagen, Modellen, Controller usw.

    Artisan – Laravels Command Line Tool

    Besonders gefältt mir hier Artisans „Thinker“-Tool, mit dem man seinen Code schnell testen sowie beliebigen PHP-Code schreiben und ausführen kann.

    Spaß beim Entwickeln

    Die interne Struktur des Frameworks und die verwendete Terminologie geben dir das Gefühl, als würdest du tatsächlich mit dem Framework kommunizieren 🙂

    Hast du lustige Anekdoten zur Arbeit mit Laravel?

    Das allmächtige Laravel-Caching. Mehrmals stand ich kurz vor einem Nervenzusammenbruch, nachdem ich eine fehlerfreie Fehlerbehebung oder Funktion implementiert hatte, nur um dann festzustellen, dass ich vergessen hatte, den Cache zu löschen. Und der 419-Fehler – ich vergesse ständig, das @csrf Blade-Tag in meine Formulare einzufügen!

    Zoran, Senior Developer & Laravel Liebhaber