Maison  >  Article  >  Laravel 7 est sur le point de sortir, jetons un coup d'œil à ses nouvelles fonctionnalités et fonctions !

Laravel 7 est sur le point de sortir, jetons un coup d'œil à ses nouvelles fonctionnalités et fonctions !

藏色散人
藏色散人avant
2020-03-03 15:56:025461parcourir

Laravel 7 est sur le point de sortir, jetons un coup d'œil à ses nouvelles fonctionnalités et fonctions !

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

Obtenir une réponse

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

Avec en-têtes de demande

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

Réponse

$response[&#39;foo&#39;]
$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 = [
        &#39;extra&#39; => 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(&#39;  Laravel 6.x &#39;);
return $currentVersion->trim()
        ->replace(&#39;6.x&#39;, &#39;7.x&#39;)
        ->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([
    &#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();

Pilotes de messagerie multiples

Laravel 7 vous permettra de configurer plusieurs pilotes de messagerie à l'aide d'une seule application.

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

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer