Laravel est l’un des frameworks PHP les plus populaires depuis de nombreuses années. Il est élégant, évolutif, est devenu l’un des frameworks de facto pour les développeurs et les entreprises travaillant avec PHP. Maintenant, Laravel 9 est en route avec une tonne de nouvelles fonctionnalités.

Dans le passé, de nouvelles versions se produisaient tous les six mois, ce qui entraînait une bonne quantité de questions, de commentaires durs et de confusion sur le processus de nouvelle version de Laravel. Avec la sortie de Laravel 9, le framework est passé à un cycle de version majeure de 12 mois et sortira en janvier 2022.

Cet article explore les principales fonctionnalités de Laravel 9. En plus de cela, nous expliquerons également comment passer à Laravel 9 et commencer à développer des applications web.

Qu’est-ce que Laravel ?

Laravel est un framework d’application web PHP open source connu pour sa syntaxe élégante. Il s’agit d’un framework MVC permettant de créer des applications web simples ou complexes à l’aide du langage de programmation PHP, et il suit strictement le modèle architectural MVC (modèle-vue-contrôleur).

Si vous n’avez pas utilisé Laravel, vous pouvez lire ce qu’est Laravel et jeter un œil à notre liste d’excellents tutoriels Laravel pour commencer.

Principales caractéristiques de Laravel

Si vous débutez dans ce framework, nous avons sélectionné certaines des meilleures fonctionnalités de Laravel pour vous permettre de mieux comprendre.

Caractéristiques Laravel dans des bulles.
Caractéristiques Laravel dans des bulles. (Source de l’image : Moon Technolabs)

ORM éloquent

Le mappeur objet-relationnel (ORM) pour Laravel s’appelle Eloquent, et c’est l’une des meilleures fonctionnalités de Laravel car il permet une interaction transparente avec le modèle de données et la base de données de choix.

Avec Eloquent, Laravel élimine tous les obstacles impliquant l’interaction et l’écriture de requêtes SQL complexes pour accéder aux données de votre base de données.

Artisan CLI

L’Artisan CLI, ou ligne de commande, est un autre aspect essentiel de Laravel. Avec lui, vous pouvez créer ou modifier n’importe quelle partie de Laravel à partir de la ligne de commande sans avoir à naviguer dans les répertoires et les fichiers.

Avec Artisan, vous pouvez même interagir avec votre base de données directement à partir de votre ligne de commande à l’aide de Laravel Tinker, le tout sans installer de client de base de données.

Architecture MVC

La nature architecturale MVC de Laravel rend le langage accessible et adaptable, car il suit un modèle de développement web répandu avec des améliorations continues et significatives.

Laravel vous obligera à apprendre et à comprendre le modèle architectural MVC, populaire et utilisé dans presque tous les frameworks, tels que AdonisJS de JavaScript et ASP.NET MVC de C#.

Pagination automatique

Si vous avez déjà eu du mal avec la pagination dans vos applications, vous comprendrez l’intérêt d’avoir votre pagination triée par un framework intégré.

Laravel résout les problèmes de pagination en créant une pagination automatique prête à l’emploi. Cette fonctionnalité est l’une de ses plus reconnues et elle élimine le travail nécessaire pour résoudre vous-même le mystère de la pagination.

Sécurité

Il est essentiel d’examiner attentivement les mesures de sécurité de toute application web que vous envisagez d’utiliser, car un manque de diligence raisonnable peut entraîner une perte de fonds ou même le détournement de votre site ou de votre produit.

Laravel est livré avec de nombreuses mesures de sécurité en place en raison de son adhésion aux principes de sécurité OWASP. De la contrefaçon de requête inter-site (CSRF) à l’ injection SQL, Laravel a une solution intégrée pour tout cela.

À quoi s’attendre avec Laravel 9

Prévu pour être publié d’ici septembre 2021, Laravel 9 a été repoussé à janvier 2022, ce qui en fait la première version de support à long terme (LTS) à être introduite après le cycle de publication de 12 mois. Ce retard résulte de plusieurs raisons, qui incluent les suivantes :

  1. Laravel utilise des variétés de projets communautaires et environ neuf bibliothèques Symfony. Cependant, Symfony prévoit la sortie de la version 6.0 d’ici novembre 2021. Le retard permettra à l’équipe Laravel d’intégrer cette nouvelle version de Symfony dans le cadre de Laravel 9.
  2. Le retard donnera à l’équipe le temps de surveiller pendant deux mois comment Laravel interagit avec la nouvelle version de Symfony. Cela leur donne également la possibilité de corriger tout changement ou bogue de rupture.
  3. Enfin, retarder la sortie de Laravel 9 positionne mieux l’équipe Laravel pour les futures sorties annuelles. Cela donnera à l’équipe deux mois de temps de montée en puissance supplémentaires après les sorties de Symfony.

Pour ces raisons, vous pouvez voir que le retard de sa sortie vaut la peine d’attendre.

Nouvelles fonctionnalités de Laravel 9

Maintenant, explorons la liste des fonctionnalités et améliorations auxquelles vous devriez vous attendre dans la prochaine version majeure de Laravel.

Exigence PHP minimale

Tout d’abord, et surtout, Laravel 9 nécessite les derniers PHP 8 et PHPUnit 8 pour les tests. C’est parce que Laravel 9 utilisera la dernière version de Symfony v6.0, qui nécessite également PHP 8.

PHP 8 est livré avec des améliorations et des fonctionnalités significatives, de la compilation JIT à la promotion des propriétés du constructeur. Vous pouvez explorer les différentes références de versions de PHP et apprendre comment passer à la dernière version de PHP 8 ici sur notre blog.

Migration de stub anonyme

Laravel définit pour faire de la migration de stub anonyme le comportement par défaut lorsque vous exécutez la commande de migration populaire :

php artisan make:migration

La fonctionnalité de migration de stub anonyme a été publiée pour la première fois dans Laravel 8.37 pour résoudre ce problème Github. Le problème est que plusieurs migrations avec le même nom de classe peuvent causer des problèmes lorsque vous essayez de recréer la base de données à partir de zéro. La nouvelle fonctionnalité de migration de stub élimine les collisions de noms de classe de migration.

À partir de Laravel 8.37, le framework prend désormais en charge les fichiers de migration de classe anonymes, et dans Laravel 9, ce sera le comportement par défaut.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('people', function (Blueprint $table)
        {
            $table->string('first_name')->nullable();
        });
    }
};

Nouvelle interface du constructeur de requêtes

Avec le nouveau Laravel 9, l’indication de type est très fiable pour la refactorisation, l’analyse statique et la complétion de code dans leurs IDE . Cela est dû au manque d’interface partagée ou d’héritage entre Query\Builder, Eloquent\Builder et Eloquent\Relation. Néanmoins, avec Laravel 9, les développeurs peuvent désormais profiter de la nouvelle interface du constructeur de requêtes pour l’indication de type, la refactorisation et l’analyse statique.

<?php

return Model::query()
	->whereNotExists(function($query) {
		// $query is a Query\Builder
	})
	->whereHas('relation', function($query) {
		// $query is an Eloquent\Builder
	})
	->with('relation', function($query) {
		// $query is an Eloquent\Relation
	});

Cette version a ajouté la nouvelle interface  Illuminate\Contracts\Database\QueryBuilder, ainsi que le trait Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder qui implémentera l’interface à la place de la méthode magique __call .

Fonctions de chaîne PHP 8

Étant donné que Laravel 9 cible PHP 8, Laravel a fusionné cette PR, suggérant d’utiliser les dernières fonctions de chaîne PHP 8.

Ces fonctions incluent l’utilisation de str_contains(), str_starts_with(), et str_ends_with() en interne dans la classe \Illuminate\Support\Str.

Les fonctionnalités et améliorations de Laravel 9 énumérées ci-dessus sont un aperçu de ce qui est à venir. Il apportera très certainement de nombreuses corrections de bogues, fonctionnalités et, bien sûr, de nombreux changements de rupture.

Comment installer Laravel 9

Si vous souhaitez commencer à jouer avec Laravel 9 à des fins de développement et de test, vous pouvez facilement l’installer et l’exécuter sur votre ordinateur local.

Laravel 9 prend en charge la version 8 de PHP, donc si vous envisagez de le tester, assurez-vous de vérifier votre version de PHP ou de lancer une nouvelle installation.

Vous pouvez découvrir plus de détails sur la sortie via Packagist .

Pour installer Laravel 9 à l’aide de composer, exécutez la commande suivante :

composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-develop

La commande ci-dessus créera un nouveau projet Laravel avec le nom de projet laravel-9-dev, en utilisant le dernier Laravel 9, qui, comme nous le savons, est toujours en cours de développement (d’où le dev-develop).

La deuxième méthode consiste à utiliser la CLI globale de Laravel pour créer un nouveau projet Laravel et à choisir de créer votre nouveau projet à partir de la branche dev.

Saisissez la commande suivante pour créer un nouveau projet Laravel 9 :

laravel new laravel-9-dev --dev

Maintenant que vous avez installé Laravel 9, vous pouvez entrer dans le nouveau répertoire (laravel-dev) et exécuter la commande artisan pour vérifier la version :

cd laravel-9-dev
php artisan --version

Cela devrait vous présenter la version de développement de Laravel 9. Voilà !

Résumé

Laravel est un framework PHP convaincant qui attire de plus en plus l’attention des développeurs. Sa prochaine version majeure (Laravel 9) est la première après un cycle de publication de 12 mois, et nous pouvons déjà voir qu’elle introduira de nouvelles fonctionnalités « juteuses ».

Est-ce toute la liste des nouvelles fonctionnalités ? Probablement pas, car l’équipe Laravel annoncera probablement de nouvelles fonctionnalités avant la date de sortie. Assurez-vous donc de mettre cet article dans vos favoris car nous les couvrirons dans les futures mises à jour.

Maintenant c’est votre tour ! Qu’attendez-vous le plus avec Laravel 9 ? Faites-le nous savoir dans la section des commentaires !

Solomon Eseme

I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me