Blog Tech PHP Webdevelopment

Juli 2020

PHP Webdevelopment

Laravel leicht gemacht

Lesezeit: 4 Minuten

Laravel: Verwirrter junger Mann mit Bart

Laravel: PHP Webdevelopment leicht gemacht

Bei der Wahl des passenden Frameworks für Ihre Webpräsenz kann man schnell den Überblick verlieren. Seit ungefähr 2015 scheint sich jedoch eines darunter von der Masse dauerhaft abzusetzen: Laravel. Damit haben auch wir bei der Umsetzung eines Projekts unsere ersten Erfahrungen gemacht, die wir nun gerne teilen wollen.

Das Laravel-Prinzip: Route-Controller-Blade

Laravel folgt einer einfachen und strukturierten Logik für den Ablauf und für die Darstellung der Webapplikation im Browser.
Die Route legt fest, wann welcher Controller aufgerufen werden soll. Über den URL Pfad ruft die festgelegte Route sowohl Controller als auch die auszuführende Funktion auf.

Der Controller selbst enthält den PHP Code mit allen Funktionen und den Algorithmus, der abgearbeitet werden soll, bevor man letztlich die Blade direkt oder über einen Redirect aufruft. Beispielsweise speichert, ändert, löscht man Daten in der Datenbank oder erstellt Objekte, die in der Blade angezeigt werden sollen.

Die Blade ist im Großen und Ganzen HTML Text, der die Seite nun im Browser darstellt.
Falls man sich nicht lange beim Designen der Seite vom Coden abhalten lassen will, empfiehlt sich hier aus einem riesigen Angebot an Themes Abhilfe zu schaffen.

Blade Templating

Laravel nutzt die eigene Blade Templating Engine die bei der Erstellung der View den kompletten Code in einfaches PHP kompiliert. Blade erlaubt mit dem @-Tag die Übersetzung von PHP und somit eine dynamische Darstellung der Seite im Browser. Zusätzlich können einzelne Blades erweitert werden, sodass man beispielsweise ein Layout erstellt, dass um den jeweils gewünschten Content erweitert wird. Das vermeidet redundanten HTML Code und vereinfacht das Projekt enorm.

Eloquent

Eloquent ist ein Object-Relational-Mapping-Tool, kurz ORM-Tool, das in der objektorientierten Programmierung Objekte bzw. Models mit der Datenbank verknüpft. In der Praxis erstellt man ein Model und verknüpft es mit der Datenbanktabelle. Da die Tabellen einer Datenbank typischerweise Beziehungen untereinander haben, kann die Verknüpfung mit der Anwendung in der Programmierung schnell sehr umfangreich oder unübersichtlich werden.

Erstellt man exemplarisch eine Datenbank zu einem Haus, so besitzt jedes Haus ein Dach, mehrere Räume, welche wiederum Türen haben. Somit besteht in der Datenbankstruktur zwischen Haus und Dach eine 1:1 und zwischen Haus und Räumen eine 1:n Relation. Eine Tür, wenn sie nicht gerade die Haustür ist, gehört zwei Räumen an und stellt somit eine n:m Beziehung dar. Diese benötigen eine zusätzliche sogenannte Pivot-Tabelle die Türen und Räume zuordnet.

All diese Beziehungen werden im Eloquent-Model einmal definiert, anschließend kann man bequem und überall alle Räume, Türen oder das Dach zum gesuchten Haus herausfiltern. Dieses Tool wird unter anderem auch bei der Projekteinrichtung von Laravel mitinstalliert.

PHP Artisan

Artisan ist ein Programm, das ebenfalls direkt bei der Einrichtung des Laravel Projekts mitgeliefert wird. Dieses Tool erlaubt dem Developer das Projekt ganz einfach über die Konsole zu steuern. Einige wichtige Commands sind bereits vordefiniert, dem Programmierer ist aber auch die Möglichkeit offen gehalten Befehle selbst zu definieren. Somit vereinfacht und erspart Artisan lästige Schritte wie u.a. Controller, Models oder Events neu zu erstellen. Zusätzlich können Funktionen auch direkt aufgerufen werden, sofern diese als Command definiert sind.

Sicherheit

Benötigt man für die Webanwendung ein Authentifizierung- und Autorisierungssystem, so befindet sich ein Komplettpaket bereits im Projekt, das nur noch aktiviert werden muss. Von der Registrierung über eine Verifikation bis hin zur Möglichkeit einer Passwort-Zurücksetzung ist in Laravel bereits alles mitgeliefert und kann mit einem Artisan Befehl aktiviert werden.

Um unerwünschte Cross-Site request forgeries (CSRF) auszuschließen, gibt es auch dafür einen bereits vorinstallierten Schutz. Um diesen zu nutzen, generiert man in der Blade in allen HTML Formularen einen CSRF-Token, der wiederum mit dem in der Session gespeicherten Token auf Übereinstimmung überprüft wird.

Unsere Erfahrung

Für eine simple Landingpage fehlen Laravel einige Features wie beispielsweise ein Pagebuilder. Zusätzlich kommt das Framework mit all diesen Erweiterungen, die aber kaum Anwendung auf solchen Seiten finden.
Wie man den oben genannten Punkten entnehmen kann ist Laravel in unseren Augen hauptsächlich für die Umsetzung von Webapplikationen geeignet, in diesem Zusammenhang ist auch unsere erste Zusammenarbeit mit diesem Framework zustande gekommen. Ansonsten ist der Umfang all der mitgelieferten Features und Hilfen für Webanwendungen sehr durchdacht und gut abgestimmt. Laravel übernimmt viele lästige Schritte und ist dabei sehr übersichtlich und einfach gehalten. Man kann sich endlich wieder auf das reine Coden in PHP konzentrieren und das bringt sehr viel Spaß mit.

Für spezielle Problemstellungen bei der technischen Umsetzung Ihrer Webanwendung sind sämtliche Vorgehensweisen hier in der Laravel Dokumentation zu finden oder Sie können uns natürlich auch für ihr ganz persönliches Projekt einfach direkt kontaktieren.