Heim  >  Artikel  >  Laravel 7 steht kurz vor der Veröffentlichung. Werfen wir einen Blick auf die neuen Features und Funktionen!

Laravel 7 steht kurz vor der Veröffentlichung. Werfen wir einen Blick auf die neuen Features und Funktionen!

藏色散人
藏色散人nach vorne
2020-03-03 15:56:025461Durchsuche

Laravel 7 steht kurz vor der Veröffentlichung. Werfen wir einen Blick auf die neuen Features und Funktionen!

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, [
    &#39;site&#39; => &#39;Laravel Article&#39;,
]);

Antwort erhalten

$response = Http::get($url);
$response = Http::get($url,[&#39;foo&#39;=>&#39;bar&#39;]);

Mit Anfrage-Headern

$response = Http::withHeaders([&#39;foo&#39; => &#39;bar&#39;])->post($url, [
    &#39;baz&#39; => &#39;qux&#39;,
]);

Antwort

$response[&#39;foo&#39;]
$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 = [
        &#39;extra&#39; => 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(&#39;  Laravel 6.x &#39;);
return $currentVersion->trim()
        ->replace(&#39;6.x&#39;, &#39;7.x&#39;)
        ->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([
    &#39;users.*&#39;,
    &#39;last_posted_at&#39; => Post::selectRaw(&#39;MAX(created_at)&#39;)->whereColumn(&#39;user_id&#39;, &#39;users.id&#39;)
])
->withCasts([&#39;last_posted_at&#39; => &#39;date&#39;])
->get();

Mehrere Mail-Treiber

Mit Laravel 7 können Sie mehrere Mail-Treiber mit einer einzigen Anwendung einrichten.

Mail::mailer(&#39;noreply&#39;)
        ->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(&#39;posts/{post:slug}&#39;, 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(&#39;api/users/{user}/posts/{post:slug}&#39;, 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:NiZerin. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen