La date de sortie officielle de Laravel 7 est le 3 mars 2020. Selon la politique de publication des versions majeures de Laravel de Laravel Framework tous les 6 mois (février et août), il s'agit d'une autre version majeure. Il ne s'agit pas d'une version LTS, donc selon la politique de support de la version Laravel, ils fournissent 6 mois de support pour les corrections de bogues jusqu'au 3 septembre 2020 et 1 an de support pour les correctifs de problèmes de sécurité jusqu'au 3 mars 2021. Jetons un coup d'œil aux nouvelles fonctionnalités et améliorations de Laravel 7. (article technique laravel)
Nouvelles fonctionnalités de Laravel 7
● Laravel Airlock
● Zttp pour le client HTTP
● Prise en charge CORS
● Cast éloquent personnalisé
● Fonctionnement fluide des chaînes
● Blade X
● Stubs personnalisables
● Conversion du temps de requête
● Pilotes de messagerie multiples
● Nouvelles commandes artisanales
Améliorations dans Laravel 7
● Modèle de routage améliorations de la liaison
● Routage 2 fois plus rapide
● Améliorations de la file d'attente de la base de données
● Améliorations du modèle d'e-mail Markdown
● Et plus de corrections de bugs et d'améliorations.
Laravel Airlock
Laravel Airlock est le package officiel pour l'authentification API. Il fournit une authentification API simple basée sur des jetons, l'émission de jetons, des capacités de jetons, l'authentification d'applications mobiles, etc.
Zttp pour le client HTTP
En utilisant Zttp, envoyer des requêtes HTTP à l'API serait un moyen meilleur et plus propre.
Publier une demande
<?php use Illuminate\Support\Facades\Http; $response = Http::post($url); $response = Http::post($url, [ 'site' => 'Laravel Article', ]);
Obtenir une réponse
$response = Http::get($url); $response = Http::get($url,['foo'=>'bar']);
Avec en-têtes de demande
$response = Http::withHeaders(['foo' => 'bar'])->post($url, [ 'baz' => 'qux', ]);
Réponse
$response['foo'] $response->body() $response->json() $response->status() $response->ok()
Support CORS
Laravel 7 prend désormais en charge CORS (Cross-Origin Resource Sharing) dès la sortie de la boîte. Vous devez mieux comprendre que chaque développeur a rencontré des problèmes CORS lors du développement d'API. Laravel 7 répond désormais automatiquement aux requêtes OPTION en utilisant des valeurs de configuration. Laravel 7 est livré avec le middleware HandleCors prêt à l'emploi qui fait tout.
Casting éloquent personnalisé
Casting éloquent personnalisé dans Laravel 7 est une autre fonctionnalité intéressante. Cette fonctionnalité vous permettra d'ajouter des diffusions personnalisées. Jetons un coup d'œil à 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); } }
Nous pouvons désormais utiliser notre distribution éloquente personnalisée dans notre modèle.
<?php namespace App; use App\Casts\Json; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $casts = [ 'extra' => Json::class, ]; }
Manipulation fluide des chaînes
Dans Laravel 7, vous pouvez utiliser la classe IlluminateSupportStr pour faire des choses plus intéressantes orientées objet.
$currentVersion = (string) Str::of(' Laravel 6.x '); return $currentVersion->trim() ->replace('6.x', '7.x') ->slug(); // laravel-7x
Blade X
La fonctionnalité Laravel 7 Blade X vous permet de créer des composants sans classe.
Générer un composant x
@php($user = $user ?? Auth::user()) @php($size = $size ?? 50) <img class="inline-block rounded-full" src="{{ $user->gravatarUrl($size) }}" width="{{ $size }}" height="{{ $size }}" />
Utilisation de Blade x
<x-avatar/> <x-avatar size="40" /> <x-avatar size="100" />
Stubs personnalisés
Vous pouvez désormais utiliser la commande artisanale dans les stubs personnalisés dans Laravel 7.x.
php artisan stub:publish
Conversion du temps de requête
Laravel 7 fournit la méthode withCasts qui vous aide à convertir des valeurs lors de l'exécution d'une requête. Donnons un exemple.
$users = User::select([ 'users.*', 'last_posted_at' => Post::selectRaw('MAX(created_at)')->whereColumn('user_id', 'users.id') ]) ->withCasts(['last_posted_at' => 'date']) ->get();
Pilotes de messagerie multiples
Laravel 7 vous permettra de configurer plusieurs pilotes de messagerie à l'aide d'une seule application.
Mail::mailer('noreply') ->to($request->user()) ->send(new PostUpdated($post));
Nouvelle commande artisanale
Une nouvelle commande de test artisanal a été ajoutée à Laravel 7. La nouvelle commande artisan test vous offre une belle UX et des informations utiles sur vos tests.
php artisan test
Améliorations dans Laravel 7
● Améliorations de la liaison du modèle de routage
● Routage 2 fois plus rapide
● Améliorations de la file d'attente de la base de données
● Améliorations du modèle d'e-mail Markdown
● et davantage de corrections de bugs et d'améliorations.
Améliorations de la liaison du modèle d'itinéraire
Clé personnalisée
Par défaut, la liaison du modèle d'itinéraire fonctionne avec le champ ID. Vous pouvez désormais le personnaliser.
Route::get('posts/{post:slug}', function (App\Post $post) { return $post; });
Auto-scoping
Laravel 7 étendra automatiquement les requêtes pour récupérer les modèles imbriqués en utilisant la méthode qu'il identifie les conventions pour identifier les appels de relation dans votre programme.
use App\Post; use App\User; Route::get('api/users/{user}/posts/{post:slug}', function (User $user, Post $post) { return $post; });
Routage 2x plus rapide
Les performances de correspondance d'itinéraire de Laravel 7 sont 2x plus rapides que celles de Laravel 6 lors de l'utilisation de route:cache
Améliorations de la file d'attente de la base de données
Laravel 7 apporte des améliorations aux applications qui utilisent MySQL 8+ comme file d'attente sauvegardée sur une base de données.
Améliorations du modèle d'e-mail Markdown
Le modèle de démarque par défaut pour les e-mails a un look plus récent en utilisant la palette CSS Tailwind. Les modèles peuvent être publiés et personnalisés selon les besoins.
Pour plus de contenu lié à la programmation, veuillez faire attention à la colonne Introduction à la programmation sur le site Web PHP chinois !