Das offizielle Erscheinungsdatum von Laravel 7 ist der 3. März 2020. Gemäß der Richtlinie zur Veröffentlichung der wichtigsten Laravel-Versionen alle 6 Monate (Februar und August) handelt es sich um eine weitere Hauptversion. Da es sich nicht um eine LTS-Version handelt, bieten sie gemäß der Laravel-Release-Support-Richtlinie 6 Monate Support bei der Behebung von Fehlern bis zum 3. September 2020 und 1 Jahr Support bei der Behebung von Sicherheitsproblemen bis zum 3. März 2021. Werfen wir einen Blick auf die neuen Funktionen und Verbesserungen in Laravel 7. (technischer Artikel zu Laravel)
Neue Funktionen von Laravel 7
● Laravel Airlock
● Zttp für HTTP-Client
● CORS-Unterstützung
● Angepasste eloquente Besetzung
● Reibungsloser String-Betrieb
● Blade X
● Anpassbare Stubs
● Abfragezeitkonvertierung
● Mehrere Mail-Treiber
● Neue Artisan-Befehle
Verbesserungen in Laravel 7
● Routing-Modell Bindungsverbesserungen
● 2x schnelleres Routing
● Verbesserungen der Datenbankwarteschlange
● Verbesserungen der Markdown-E-Mail-Vorlage
● Und weitere Fehlerbehebungen und Verbesserungen.
Laravel Airlock
Laravel Airlock ist das offizielle Paket für die API-Authentifizierung. Es bietet einfache tokenbasierte API-Authentifizierung, Token-Ausgabe, Token-Funktionen, Authentifizierung mobiler Apps und mehr.
Zttp für HTTP-Client
Die Verwendung von Zttp wäre eine bessere und sauberere Möglichkeit, HTTP-Anfragen an die API zu stellen.
Anfrage posten
<?php use Illuminate\Support\Facades\Http; $response = Http::post($url); $response = Http::post($url, [ 'site' => 'Laravel Article', ]);
Antwort erhalten
$response = Http::get($url); $response = Http::get($url,['foo'=>'bar']);
Mit Anfrage-Headern
$response = Http::withHeaders(['foo' => 'bar'])->post($url, [ 'baz' => 'qux', ]);
Antwort
$response['foo'] $response->body() $response->json() $response->status() $response->ok()
CORS-Unterstützung
Laravel 7 unterstützt jetzt CORS (Cross-Origin Resource Sharing) sofort einsatzbereit. Sie sollten besser verstehen, dass jeder Entwickler bei der API-Entwicklung auf CORS-Probleme gestoßen ist. Laravel 7 antwortet jetzt automatisch auf OPTION-Anfragen mithilfe von Konfigurationswerten. Laravel 7 wird standardmäßig mit der HandleCors-Middleware geliefert, die alles kann.
Benutzerdefinierte eloquente Besetzung
Die benutzerdefinierte eloquente Besetzung in Laravel 7 ist ein weiteres cooles Feature. Mit dieser Funktion können Sie benutzerdefinierte Besetzungen hinzufügen. Werfen wir einen Blick auf JSON Caster.
<?php use Illuminate\Contracts\Database\Eloquent\CastsAttributes; class Json implements CastsAttributes { public function get($model, $key, $value, $attributes) { return json_decode($value, true); } public function set($model, $key, $value, $attributes) { return json_encode($value); } }
Jetzt können wir unsere benutzerdefinierte eloquente Besetzung in unserem Modell verwenden.
<?php namespace App; use App\Casts\Json; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $casts = [ 'extra' => Json::class, ]; }
Fließende String-Manipulation
In Laravel 7 können Sie die IlluminateSupportStr-Klasse verwenden, um weitere coole objektorientierte Dinge zu tun.
$currentVersion = (string) Str::of(' Laravel 6.x '); return $currentVersion->trim() ->replace('6.x', '7.x') ->slug(); // laravel-7x
Blade X
Laravel 7 Blade
X-Komponente generieren
@php($user = $user ?? Auth::user()) @php($size = $size ?? 50) <img class="inline-block rounded-full" src="{{ $user->gravatarUrl($size) }}" width="{{ $size }}" height="{{ $size }}" />
Blade x Usage
<x-avatar/> <x-avatar size="40" /> <x-avatar size="100" />
Benutzerdefinierte Stubs
Jetzt können Sie den artisan-Befehl in benutzerdefinierten Stubs verwenden in Laravel 7.x.
php artisan stub:publish
Abfragezeitkonvertierung
Laravel 7 bietet die withCasts-Methode, mit der Sie Werte umwandeln können, während Sie eine Abfrage ausführen. Geben wir ein Beispiel.
$users = User::select([ 'users.*', 'last_posted_at' => Post::selectRaw('MAX(created_at)')->whereColumn('user_id', 'users.id') ]) ->withCasts(['last_posted_at' => 'date']) ->get();
Mehrere Mail-Treiber
Mit Laravel 7 können Sie mehrere Mail-Treiber mit einer einzigen Anwendung einrichten.
Mail::mailer('noreply') ->to($request->user()) ->send(new PostUpdated($post));
Neuer Artisan-Befehl
Ein neuer Artisan-Testbefehl wurde zu Laravel 7 hinzugefügt. Der neue Befehl „Artisan Test“ bietet Ihnen eine schöne Benutzeroberfläche und nützliche Informationen zu Ihren Tests.
php artisan test
Verbesserungen in Laravel 7
● Verbesserungen der Routing-Modellbindung
● 2x schnelleres Routing
● Verbesserungen der Datenbankwarteschlange
● Verbesserungen der Markdown-E-Mail-Vorlage
● und weitere Fehlerbehebungen und Verbesserungen.
Verbesserungen der Routenmodellbindung
Benutzerdefinierter Schlüssel
Standardmäßig funktioniert die Routenmodellbindung mit dem ID-Feld. Jetzt können Sie es anpassen.
Route::get('posts/{post:slug}', function (App\Post $post) { return $post; });
Auto-Scoping
Laravel 7 führt Abfragen automatisch zum Abrufen verschachtelter Modelle durch, indem es die Methode verwendet, mit der es Konventionen zum Identifizieren von Beziehungsaufrufen in Ihrem Programm identifiziert.
use App\Post; use App\User; Route::get('api/users/{user}/posts/{post:slug}', function (User $user, Post $post) { return $post; });
2x schnelleres Routing
Die Routenanpassungsleistung von Laravel 7 ist bei Verwendung von route:cache 2x schneller als die von Laravel 6
Verbesserungen der Datenbankwarteschlange
Laravel 7 bringt Verbesserungen für Anwendungen, die MySQL 8+ als datenbankgestützte Warteschlange verwenden.
Verbesserungen der Markdown-E-Mail-Vorlage
Die Standard-Markdown-Vorlage für E-Mails hat mithilfe der Tailwind-CSS-Palette ein neueres Aussehen. Vorlagen können nach Bedarf veröffentlicht und angepasst werden.
Weitere Inhalte zum Thema Programmierung finden Sie in der Spalte Einführung in die Programmierung auf der chinesischen PHP-Website!