Skip to main content

Laravel

Was ist Laravel?

Laravel ist ein kostenloses Open-Source PHP-Web-Framework, das von Taylor Otwell entwickelt wurde und für die Entwicklung von Webanwendungen nach Model-View-Controller (MVC) und auf Symfony basiert. Einige Features von Laravel sind ein modulares Paketsystem mit einem dedizierten Abhängigkeits-Manager, verschiedene Möglichkeiten für den Zugriff auf relationale Datenbanken, Hilfsprogramme, die die Bereitstellung der Anwendungen und -Wartungen unterstützen, sowie die Ausrichtung auf syntaktischen Zucker.

Der Quellcode von Laravel wird auf Github gehostet und unter den Bedingungen der MIT-Lizenz lizenziert.

Entwicklung

Taylor Otwell entwickelte Laravel als Versuch, eine weiterentwickelte Alternative zum Codelgniter-Framework bereitzustellen, das bestimmte Funktionen, wie die integrierte Unterstützung für die Benutzerauthentifizierung und -Autorisierung nicht zur Verfügung stellte. Die erste Beta-Version von Laravel wurde am 9. Juni 2011 veröffentlicht. Später im selben Monat wurde Laravel 1 veröffentlicht. Es enthielt eine integrierte Unterstützung für die Authentifizierung, Lokalisierung, Modelle, Ansichten, Sitzungen, Routing und andere Mechanismen – fehlte es jedoch für die Controller, die es nicht als MVC-Framework nutzten.

Die Version 2 wurde im September 2011 veröffentlicht und brachte verschiedene Verbesserungen des Autors und der Community. Zu den wichtigsten neuen Funktionen gehörten die Unterstützung für Controller, die Version 2 zu einem vollständig MVC-kompatiblen Framework machte, integrierte Unterstützung für das Inversion of Control-Prinzip (IoC) und ein Templating-System namens Blade. Als Nachteil wurde die Unterstützung für Pakete von Drittanbietern in der Version 2 aufgehoben.

Die Version 3 wurde im Februar 2012 mit einer Reihe neuer Features publiziert, darunter der Befehlszeilen-Schnittstelle (Artisan), integrierte Unterstützung für weitere Datenbank-Verwaltungssysteme, Datenbank-Migrationen als Form der Versionskontrolle für Datenbank-Layouts sowie die Unterstützung für die Handhabung der Ereignisse und ein Verpackungssystem namens Bundles. Eine Zunahme von Laravel’s Userbase und Popularität reihen sich an die Veröffentlichung.

Codename Illuminate (Version 4) wurde im Mai 2013 veröffentlicht. Es wurde als vollständige Umschreibung des Frameworks erstellt und sein Layout in eine Reihe von separaten Paketen migriert, die über Composer verteilt wurden, der als Paketmanager auf Anwendungsebene dient. Durch ein solches Layout wurde die Erweiterbarkeit verbessert, das mit dem offiziellen regulären Veröffentlichungszeitplan von sechs Monaten zwischen den Minor-Point-Veröffentlichungen verbunden war. Weitere neue Funktionen umfassen das Datenbank-Seeding für die anfängliche Auffüllung von Datenbanken, Unterstützung für Nachrichtenwarteschlangen, integrierte Unterstützung für das Senden verschiedener E-Mail-Typen und die Unterstützung für das verzögerte Löschen von Datenbank-Datensätzen, die als weiches Löschen bezeichnet werden.

Laravel 5 wurde im Februar 2015 als Folge interner Änderungen veröffentlicht, die zur Konsequenz führten, dass die damalige Version von Laravel 4.3 neu nummeriert wurde. Zu den neuen Funktionen der Version 5 gehört die Unterstützung für das Planen periodisch ausgeführter aufgaben durch ein Paket namens Scheduler, eine als Fly-System bezeichnete Abstraktionsschicht, mit der Remotespeicher auf dieselbe Weise wie lokale Dateisysteme verwendet werden kann, ein verbessertes Handling von Paketassets durch Elixir und vereinfachte Authentifizierung mit externem Zugriff durch das optionale Socialite-Paket. Es führte auch eine neue interne Verzeichnis-Baumstruktur für entwickelte Anwendungen ein.

Eigenschaften

Die folgenden Eigenschaften dienen als wesentliche Designpunkte:

Bundles bieten seit der Veröffentlichung von Version 3 ein modulares Paketsystem, wobei bereits gebündelte Funktionen zur einfachen Ergänzung von Anwendungen verfügbar sind. Darüber hinaus verwendet Version 4 Composer als Abhängigkeits-Manager, um Framework-agnostische und spezifische PHP-Pakete hinzuzufügen, die im Packagist-Repositorium verfügbar sind.

Eloquent ORM (objektrelationales Mapping) ist eine fortgeschrittene PHP-Implementierung des aktiven Datensatzmusters, die gleichzeitig interne Methoden zum Erzwingen von Einschränkungen für die Beziehungen zwischen den Datenbankobjekten bereitstellt. Dem aktiven Datensatzmuster folgend präsentiert Eloquent ORM Datenbanktabellen als Klassen, wobei ihre Objektinstanzen an einzelne Tabellenzeilen gebunden sind.

Der seit Laravel 3 verfügbare Abfrage-Generator bietet eine direktere Alternative auf den Datenbankzugriff zum Eloquent ORM. Anstatt SQL-Abfragen direkt schreiben zu müssen, bietet Laravel Query Builder (Abfrage-Generator) eine Reihe von Klassen und Methoden, mit denen Abfragen programmgesteuert erstellt werden können. Es erlaubt auch ein wählbares Zwischenspeichern der Ergebnisse ausgeführter Abfragen.

Die Anwendungslogik ist ein integraler Bestandteil der entwickelten Anwendungen, die entweder mithilfe von Controllern oder als Teil der Routendeklarationen implementiert wird. Die zur Definition der Anwendungslogik verwendete Syntax ähnelt der vom Sinatra-Framework.

Reverse Routing definiert eine Beziehung zwischen den Links und Routen, sodass spätere Änderungen an Routen automatisch in relevante Links übernommen werden können. Wenn die Verknüpfungen unter Verwendung der Namen vorhandener Routen erstellt werden, werden die entsprechenden URIs (Uniform Resource Identifiers) automatisch von Laravel erstellt.

Das automatisierte Laden von Klassen ermöglicht das automatisierte Laden von PHP-Klassen ohne die manuelle Pflege der Einschlusspfade. Das Laden bei Bedarf verhindert das Einschließen von unnötigen Komponenten, sodass nur die tatsächlich verwendeten Komponenten geladen werden.

Neben diesen Eigenschaften bietet Laravel noch zahlreiche andere Merkmale und Funktionen.

Empfohlene Pakete

Zu den gebrauchsfertigen Paketen, die von Laravel über Composer und Packagist bereitgestellt werden, gehören folgende:

  • Cashier
  • SSH
  • Scheduler
  • Fly-System
  • Socialite

Zusatzpakete

Neben den integrierten und optionalen Paketen wird auch eine Reihe kostenpflichtiger Zusatzfunktionen angeboten, die in einem Paket namens Spark zusammengefasst sind. Das Paket wurde ebenfalls von Taylor Otwell entwickelt und bietet zusätzliche Tools für Online-SaaS-Unternehmen zur Integration von Services wie Stripe, Erstellen von Rechnungen, Bootstrap 4.0 und Teamauthentifizierung. Seit Juni 2018 ist die Paketversion 6.0.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG