PHP-Framework: Laravel 7 erscheint mit Authentifizierungssystem Airlock

Das neue Major Release des PHP-Frameworks Laravel bietet neue Features wie Airlock, Eloquent und Blade Component Tags.

In Pocket speichern vorlesen Druckansicht 5 Kommentare lesen
PHP-Framework: Laravel 7 ist erschienen

(Bild: SVPanteon/Shutterstock.com)

Lesezeit: 4 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Version 7 des populären PHP-Frameworks Laravel ist erschienen. Bugfixes nehmen die Entwickler bis zum 3. September 2020 vor, Sicherheitsupdates bis zum 3. März 2021. Das neue Release bringt ein neues Authentifizierungssystem namens Airlock, benutzerdefinierte Cast-Typen mit Eloquent, Blade Component Tags, Fluent String Operations, einen HTTP-Client mit Entwicklerfokus und First-Party-Unterstützung für CORS (Cross-Origin Resource Sharing). Es gibt einen neuen artisan test-Befehl, multiple Mailtreiber und Änderungen an der Datenbank-Queue. Weitere Verbesserungen betreffen die Routing-Geschwindigkeit und Scoping für das Route Model Binding.

Seit Laravel 6 (LTS) folgen Releases einer semantischen Versionierung, halbjährlich erscheint ein neues Major Release. Laravel 7 setzt begonnene Verbesserungen fort und führt weitere Features ein.

Bei Airlock handelt es sich um ein Authentifizierungssystem, mit dem Nutzer von Anwendungen gleich mehrere API-Tokens für ihr Konto erstellen können sollen. Damit können sie sich bei Single Page Applications (SPAs), mobilen Apps und Token-basierten Schnittstellen anmelden. Den jeweiligen Token können Anwender Fähigkeiten und Geltungsbereiche zuordnen, die ihren Anwendungsraum einhegen und genau definieren. Zu Airlock stellen die Entwickler eine ausführliche Dokumentation bereit.

Entwickler können mit dem neuen Release eine Klasse definieren, die das CastsAttributes-Interface einbindet. Mit dem Interface ist es möglich, eigene Cast-Typen zu definieren. Die genauen Methoden und der Code stehen in den Release Notes. Sobald ein neuer Cast-Typ definiert ist, kann man ihn mit einem Modellattribut verknüpfen, indem man seinen Klassennamen verwendet:

<?php

namespace App\Casts;

use Illuminate\Contracts\Database\Eloquent\CastsAttributes;

class Json implements CastsAttributes
{
/**
* Cast the given value.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param mixed $value
* @param array $attributes
* @return array
*/
public function get($model, $key, $value, $attributes)
{
return json_decode($value, true);
}

/**
* Prepare the given value for storage.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param array $value
* @param array $attributes
* @return string
*/
public function set($model, $key, $value, $attributes)
{
return json_encode($value);
}
}

Die Blade Components ermöglichen im neuen Release das Rendern, Verwalten von Attributen und das Erstellen von Komponentenklassen basierend auf Tags. Laravel-Komponenten können nun auch eine assoziierte Klasse haben, die bestimmt, welche Daten sie akzeptiert. Alle öffentlichen Eigenschaften und Methoden, die zur Definition der Komponentenklasse passen, sind in Laravel 7 für die Komponentenansicht (component view) automatisch verfügbar. Mit der Variablen $attribute kann man zusätzliche HTML-Attribute definieren.

Weitere Änderungen betreffen den Guzzle-HTTP-Client: Bei Laravel soll man in der neuen Version mit offenbar minimaler API schnelle HTTP-Requests durchführen können, die die Kommunikation mit anderen Webanwendungen erleichtern. Der Wrapper rund um Guzzle konzentriert sich auf die häufigsten Fälle. Auch Fluent String Operations sind neu: Laravel 7 soll deutlich objektorientierter sein und hält eine Library zur Manipulation von Fluent Strings bereit. Ein Codebeispiel steht in der Ankündigung:

return (string) Str::of('  Laravel Framework 6.x ')
->trim()
->replace('6.x', '7.x')
->slug();

Abschließend ein Wort zum Testen: Um Tests durchzuführen, können Laravel-Entwickler nun zusätzlich auch den Artisan-Befehl test ausführen. Der Code ist einfach: php artisan test. Alle Argumente, die sonst mit dem Befehl phpunit ausgegeben werden, werden auch an den Artisan-Befehl test ausgegeben: php artisan test --group=feature.

Die Release Notes mit Details zu Laravel 7 und sämtlichen neuen Features sind auf der Webseite des Frameworks verfügbar. Die Blade Components verfügen auch über eine eigene Dokumentation, ebenso der Guzzle-HTTP-Client. (sih)