Blog

problèmes informatique et solutions

Accueil / Blog / Quelles sont les nouveautés de Laravel 11 ?

Quelles sont les nouveautés de Laravel 11 ?

admin 13/03/24 12:03:34 | 4 minutes, 778 mots
controller nouveautés vue blade
Quelles sont les nouveautés de Laravel 11 ?

NOUVEAUTÉS DE LARAVEL 11

INTRODUCTION:

Aujourd'hui, dans ce post, j'aimerais partager avec vous les nouvelles fonctionnalités de la version 11 de Laravel. Je vais vous montrer les nouvelles fonctionnalités majeures et les nouvelles mises à jour de Laravel 11.

La date de sortie de Laravel 11 est le 12 mars 2024.

Dans cet article, je vais vous montrer les nouvelles mises à jour effectuées dans la version Laravel 11. Voyons les donc une par une :

I) Le squelette d'application plus minimaliste

app
|--- Http
|   |--- Controllers
|       |--- Controller.php
|--- Models
|   |--- User.php
|--- Providers
|   |--- AppServiceProvider.php
bootstrap
|--- app.php
|--- cache
|   |--- packages.php
|   |--- services.php
|--- providers.php
routes
|--- console.php
|--- web.php

Vous pouvez voir la liste des modifications suivantes apportées :

  • Dans AuthServiceProvider, le framework découvre et supprime automatiquement les $policies.
  • L’inclusion de SendEmailVerificationNotification dans EventServiceProvider n’est plus nécessaire, car elle est désormais automatiquement enregistrée par l’EventServiceProvider de base. De plus, il convient de noter que Laravel active désormais par défaut la découverte automatique des événements.
  • Le BroadcastServiceProvider n’est plus indispensable, ce qui entraîne sa suppression. Par conséquent, le framework ne charge plus automatiquement le fichier routes/channels.php.
  • L'amélioration de RedirectIfAuthenticated est facilitée par la fonctionnalité principale du framework.
  • Le middleware Authenticate n'appelle plus la méthode redirectTo() pour les routes JSON, éliminant ainsi le besoin de vérifications ternaires redondantes.
  • Suppression des middlewares EncryptCookies, PreventRequestsDuringMaintenance.php, TrimStrings, TrustHosts, TrustProxies, ValidateCsrfToken et ValidateSignature de la structure squelette.
  • Dans Laravel 11, c'est désormais plus simple car la fonction Custom Artisan en fait déjà partie. Vous n'avez plus besoin d'utiliser manuellement la méthode load() dans la console.
  • Supprimer le fichier routes/console.php est un gros problème. Il ne vous reste plus qu'à mettre vos commandes spéciales directement dans le noyau de la console.
  • Les traits AuthorizesRequests et ValidatesRequests ont été éliminés du contrôleur fondamental.
  • Le fichier bootstrap/app.php a été rationalisé et ne contient actuellement que trois lignes de code.
  • Laravel version 11 a supprimé le gestionnaire d'exceptions.

II) Ajouter un trait dumpable (dump() et dd() avec des objets)

Laravel 11 a ajouté un nouveau trait Dumpable et vous pouvez facilement vider vos objets. Spécialement, cela vous aidera à déboguer votre générateur de requêtes éloquent laravel et vous pourrez également déboguer la base de données relationnelle.

Voyons donc l'exemple de code simple :

<?php
   
namespace App\ValueObjects;
   
use Illuminate\Support\Traits\Dumpable;
use Illuminate\Support\Traits\Conditionable;
   
class Student
{
    use Conditionable, Dumpable;
   
    /* ... */
}
   
$student = new Student;
   
// Before:
$student->foo()->bar();
   
// After:
$student->foo()->dd()->bar();

III) Méthode Model::casts() en direct

Avec Laravel 11, vous pouvez désormais définir votre casting via une méthode casts() dans votre modèle, vous donnant la possibilité d'utiliser les méthodes statiques de la classe effectuant le casting. Voici à quoi ça ressemble :

Je vais montrer l'ancien et le nouveau avec le code ci-dessous :

namespace App\Models;
  
use App\Enums\UserRole;
use Illuminate\Database\Eloquent\Model;
 
class User extends Model
{
    /* OLD method */
    protected $casts = [
        'role' => UserRole::class,
    ];
  
    /* NEW Method */
    protected function casts() : array
    {
        return [
            'role' => UserRole::class,
        ];
    }
}

IV) Suppression les fichiers de configuration par défaut

Dans Laravel 11, ils ont supprimé le fichier de configuration par défaut et ont également ajouté des variables supplémentaires sur le fichier .env afin que vous puissiez le configurer à partir du fichier .env. Mais si vous souhaitez sauvegarder tous les fichiers de configuration, vous devez exécuter la commande suivante :

Publier tous les fichiers de configuration:

php artisan config:publish

Publier un fichier de configuration spécifique:

php artisan config: publish database

V) Noms de migration par défaut simplifiés

Laravel 11 aura de nouveaux noms de migrations. avant, il affichait la date de création avec le nom de la migration, mais dans la nouvelle version, il ajoutera correctement un nouveau nom, comme dans l'exemple ci-dessous:

ANCIEN noms de migrations:

migrations
|---2014_10_12_000000_create_users_table.php
|---2014_10_12_100000_create_password_reset_tokens_table.php
|---2019_08_19_000000_create_failed_jobs_table.php

NOUVEAUX noms de migrations:

migrations
|---0001_01_01_000000_create_users_table.php
|---0001_01_01_000001_create_jobs_table.php

VI) Noyau de console supprimé

Laravel 11 a supprimé le fichier du noyau de la console. désormais, vous n'avez plus besoin d'enregistrer votre commande de console avec le fichier du noyau(kernel). Vous pouvez le déclarer comme ci-dessous :

php artisan make:command TestCommand

// Console command [app/Console/Commands/TestCommand.php] created successfully.  

Chemin: routes/console.php

Schedule::command('app:test-command')->hourly();

CONCLUSION:

Voici pour les principaux gros changements de laravel 11 par rapport aux anciennes versions.


blog
admin

Je suis l'administrateur du site inter-prog ainsi que son créateur.