Neustadt in Holstein
mail@dezio.de

Mein Umstieg zu Laravel

Mein Umstieg zu Laravel

Aus dem Archiv Vor einiger Zeit noch habe ich mit dem Glauben gelebt, dass man vieles selbst programmieren sollte, da Frameworks den Rahmen sprengen. Geirrt habe ich mich. Zumal mir auch schon öfter die Idee kam, mich mehr an die Regel „Don’t reinvent the wheel“ (Das Rad nicht neu erfinden) zu halten. Das spart einfach Zeit – und Ärger! Im August 2017 habe ich’s dann auch umgesetzt!

Mit dem PHP-Framework Laravel habe ich einen neuen Freund und Kollegen für die Programmierung gefunden. Jedes Projekt, das ich bis jetzt auf die Beine stellen musste, lässt mich an einen inneren Ärger erinnern. Dass ich dort nicht schon auf das Framework gesetzt habe. Es hätte alles so einfach sein können!

Doch zunächst: Was ist ein Framework? Ein Framework ist ein Grundgerüst eines Systems, das mit Leben befüllt werden kann. Es stellt verschiedene Funktionen, Logiken, Routinen und Bibliotheken zur Verfügung, welche das Erreichen eines Projektziels stark vereinfachen und unterstützend Zeit sparen sollen. Dabei ist Effizienz und Nachvollziehbarkeit zu beachten. Denn damit spart man noch eine weitere Stange Zeit!

Genau so etwas habe ich eigentlich gesucht, jedoch bin ich nie richtig fündig geworden. Ich habe mich an Frameworks nicht rangetraut, da meine Projekte meistens eine kleinere Basis besaßen. In der Vergangenheit war es aber oft so, dass diese Projekte und die Programme an ihre Grenzen stoßen sollten. Ich musste diese mühselig erweitern. Das hat Zeit gekostet, da die gewünschten Erweiterungen zur Zeit der Planung nicht vorgesehen waren.

Eine gewisse Wartbarkeit und Erweiterbarkeit meiner Quelltexte setze ich schon voraus, allerdings lernt man ja mit der Erfahrung. Lass Dir eines gesagt sein: Vorausplanung ist wichtig. Sogar für Dein Side-Projekt. Sonst verlierst Du schnell die Lust. Wenn Du mal wieder alles komplett umbauen musst. Jedes nur halb komplexe System muss einen bestimmten Satz an Funktionen bieten. Datenbankverbindungen, Authentifizierung, eigene Bereiche für bestimmte Nutzergruppen (Backend/Frontend), schlaue Rechte-Systeme, Cloud/Speicher-Anbindungen. Die Stichwörter Caching, Sicherheit, Logging und Debugging gehören ebenfalls zu jeder Projektplanung dazu.

Alle genannten Bereiche bringt das Framework Laravel bereits mit und können schnell und einfach als ein beliebiges neues System verwendet werden.

Jedes Projekt beinhaltet in der Planung ein Datenbank-Design. Aus diesem Grund kann man dank Laravel Eloquent die entstandenen Datenbank-Tabellen in Modelle reflektieren. Tabellenrelationen können in diesen Modellen jederzeit mit den Funktionen hasOne(), hasMany() implementiert und programmatisch verknüpft gestalten. Jedes Modell (Klasse) repräsentiert eine Tabelle in der Datenbank.

Diese Daten werden aus den Controllern in die View geladen. Somit steht schonmal fest: Laravel ist zum Teil ein MVC (Model-View-Controller)-Framework. Modelle und Datenhaltung in der untersten Ebene, dazwischen gibt es den Controller, der die Daten zwischen Modell und View (der obersten Ebene, Oberfläche) austauscht.

Doch das ist nicht der einzige Vorteil: Es bietet zum Beispiel sog. Middleware. So kann eine bestimmte Klasse vor dem Aufruf eines Controller-Codes das Request-Objekt einsehen und darauf reagieren. Entweder wird der User umgeleitet, das Request abgeändert oder aber ohne Einschränkungen zum Controller geführt.

Das kann man zum Beispiel nutzen, wenn man eine Administrations-Oberfläche wünscht. Nur Administratoren dürfen auf alle Routen, die mit /admin/ beginnen zugreifen. Das regelt dann die Route selbstständig und schaltet unsere Ist-Admin-Check-Middleware dazwischen. So muss man im Controller nicht an jeder Stelle die Rechte prüfen. Das passiert bereits, bevor der Controller überhaupt erstellt und aufgerufen wird.

Warum ich darauf so abfahre

Bisher waren alle Kollegen begeistert von der Schnelligkeit, in welcher ich ein neues System ins Leben rufe. Doch mit dem Laravel-Framework geht das jetzt noch schneller. Zugegeben: Man muss einige neue Praktiken lernen, wie zum Beispiel den Umgang mit Composer, Blade und dem Framework allgemein neu dazulernen, das sollte für einen erfahrenen Entwickler kein Problem sein. Außerdem gehören diese Tools und Umgänge zum Allgemeinwissen dazu. Ebenfalls die Dependency Injection, die Laravel bietet. Es ist kein Problem, das mitgebrachte User-Objekt auszutauschen. Oder einen anderen E-Mail-Driver einzupflegen und zu nutzen.,

Ich habe auf Quora mal eine Liste von Pros und Cons herausgesucht:

Pros

  • Nutzung der Neuesten PHP-Standards
  • Warteschlangen-Logiken zum Abarbeiten von Codes/Abhandlungen
  • MVC – Trennung von Logik und Oberfläche
  • Routing – Ein Weg, um Anfragen richtig zu leiten
  • Artisan – Kommandozeilen-Ebene für das Aufrufen von Routinen

Cons

  • Nichts für Neueinsteiger in PHP
  • PHP kann allgemein einschränkend wirken

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.