Intuitiveness and Speed of Writing Code

Laravel - Intuitivité et Rapidité d'Écriture de Code

html

Laravel et Symfony sont des frameworks très souvent comparés, et il y a beaucoup de discussions à leur sujet dans les forums. Aujourd'hui, cependant, je ne veux pas me concentrer sur la comparaison, mais sur la mise en avant des avantages de Laravel et décrire ce qui m'a fait la plus grande, évidemment positive, impression.

Artisan est votre meilleur ami

Artisan est la CLI attachée à Laravel. Grâce à lui, avec la commande appropriée, vous pouvez rapidement effectuer de nombreuses activités qui normalement vous prendraient beaucoup de temps. Quelles sont ces activités ? J'ai écrit à leur sujet plus bas.

Présélections Frontend / Laravel UI

Configurer la bonne technologie frontend peut prendre beaucoup de temps, surtout si c'est votre première fois. Lors de l'adoption de Laravel dès le début, vous pouvez utiliser les trois présélections disponibles : bootstrap, vue ou react. Avec l'aide de l'artisan susmentionné, vous pouvez rapidement choisir quelle technologie vous utiliserez dans le projet. Pour l'exemple, supposons que vous ayez besoin de react. Jusqu'à la version 5 de Laravel, vous deviez utiliser une seule commande à cet effet :

php artisan preset react

Depuis la version 6, d'abord, vous devez installer le package Laravel UI à l'aide d'un composer :

composer require laravel/ui

et ensuite choisir le bon ensemble pour votre projet, par exemple :

php artisan ui react

Ce n'est pas tout, cependant, car vous n'êtes pas limité à seulement ces trois technologies. Vous pouvez ajouter vos propres présélections (par exemple, tailwindcss), et sur GitHub, vous pouvez trouver de nombreux exemples de comment faire cela.

Authentification

Chaque application actuellement développée doit avoir un système de connexion, d'enregistrement d'utilisateur et de récupération de mot de passe. Créer tout cela de toutes pièces n'a pas de sens. Vous pouvez également utiliser des solutions prêtes à l'emploi, mais dans le cas de Laravel, il était impossible de simplifier davantage les choses.

Jusqu'à la version 5, vous deviez utiliser une seule commande

php artisan make:auth

Depuis la version 6, vous devez encore une fois utiliser le package Laravel UI

php artisan ui:auth

La commande ci-dessus créera les chemins appropriés dans le routage, les contrôleurs et les vues pour les personnes connectées ou non connectées. Cependant, si cela ne suffit toujours pas pour vous, vous pouvez également créer des formulaires de connexion, d'enregistrement et de récupération de mot de passe :

php artisan ui react –auth

Eloquent

C'est peut-être le plus grand avantage de Laravel. Eloquent est un ORM basé sur le modèle ActiveRecord. Il vous permet de travailler avec la base de données de manière très intuitive. Grâce à lui, vous pouvez oublier d'écrire des requêtes SQL brutes, et travailler avec la base de données devient incroyablement agréable. Jetons un œil à quelques exemples ci-dessous :

User::where(‘first_name’, ‘Andrzej’)→orderBy(‘last_name’, ‘DESC’)→get();

Le code ci-dessus ne nécessite en fait aucun commentaire : Téléchargez les utilisateurs dont le prénom est Andrzej et triez les résultats par leur nom de famille. Cependant, si au lieu d'une liste de tous les utilisateurs, vous avez seulement besoin du premier résultat, remplacez simplement get() par first() :

User::where(‘first_name’, ‘Andrzej’)→orderBy(‘last_name’, ‘DESC’)→first();

Vous aurez également souvent besoin d'afficher une page d'erreur 404 dans le cas où vous ne trouvez aucun enregistrement dans la base de données. Dans cette variante, vous devez simplement remplacer where par findOrFail

User::findOrFail(‘first_name’, ‘Andrzej’)→orderBy(‘last_name’, ‘DESC’)→get();

Les exemples ci-dessus ne sont qu'un aperçu de ce qu'Eloquent peut faire. Vous pouvez tout aussi facilement créer, éditer ou supprimer des enregistrements dans la base de données. Il est également possible de créer des relations entre les tables : un-à-un, un-à-plusieurs ou plusieurs-à-plusieurs.

Migrations

Comme autre exemple, je voudrais présenter la création, l'édition et la suppression de tables dans une base de données. Supposons que vous ayez besoin de créer une nouvelle table avec des produits qui se trouveront dans un magasin. À cette fin, vous aurez également besoin d'un modèle qui sera responsable de la gestion des données. Vous créez tout avec une seule commande :

php artisan make:model Product –migration

Le modèle Product.php sera créé dans le répertoire app/model’s (ou app dans le cas de Laravel 7 ou antérieur). Le drapeau –migration signifie que vous avez également créé une migration pour ce modèle, qui est située dans le répertoire database/migration’s. Dans la méthode up() vous définissez le nom de la table et le type de données. Par exemple :

public function up()

{

   Schema::create('products', function (Blueprint $table) {

      $table->id();

      $table->string('name');

      $table->text('description');

      $table->float('price');

      $table->integer('stock');

      $table->tinyInteger('isActive');

      $table->timestamps();

   });

}

La méthode timestamps créera des colonnes created_at et updated_at supplémentaires, qui seront automatiquement complétées avec les données appropriées lors de la création ou de la modification de l'enregistrement.

Enfin, pour créer la table ci-dessus dans une base de données, vous devez exécuter :

php artisan migrate

ou

php artisan migrate:fresh

pour supprimer toutes les données précédentes et recréer toute la structure de la table à partir de zéro.

Il est bon d'ajouter ici que le nom des tables a été créé en fonction du modèle (Product) et automatiquement changé de la forme singulière à la forme plurielle (products).

Exemples de données (Seeders)

Lorsque nos développeurs Laravel créent de nouvelles applications tout en fournissant des services de développement PHP à nos clients, nous rencontrons souvent le besoin de compléter la base de données avec des données de test, par exemple : utilisateurs, entrées de blog ou produits dans le magasin. La bibliothèque PHP Faker fonctionne parfaitement à cet effet, mais aussi dans ce cas, les développeurs Laravel sont allés plus loin et ont présenté des solutions prêtes. Par exemple, supposons que vous deviez créer cent utilisateurs dans la base de données.

D'abord, vous devez créer une fabrique de base de données en utilisant la commande :

php artisan make:factory UserFactory -m User

Si vous allez dans le chemin database/factory, vous verrez qu'un nouveau fichier UserFactory.php a été créé. Dans ce fichier même – et plus précisément dans la méthode definition() – vous définirez quels champs et quelles données dans la table user vous remplirez.

public function definition()

{

   return [

      'first_name' => $this→faker→firstName,

      'last_name' => $this->faker->lastName,

      'email' => $this->faker->unique()->safeEmail,

      'email_verified_at' => now(),

      'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',

// mot de passe

      'remember_token' => Str::random(10),

   ];

}

Bien sûr, le nom des clés dans la table doit correspondre aux noms des colonnes dans la table de la base de données.

L'étape suivante est de créer un seeder. À nouveau, vous devez utiliser artisan à cet effet.

php artisan make:seeder UsersTableSeeder

Dans le fichier nouvellement créé database/seeders/UsersTableSeeder.php, vous n'avez qu'à définir combien d'utilisateurs doivent être créés.

public function run()

{

   \App\Models\User::factory()->count(100)->create();

}

Enfin, dans le fichier database/seeders/DatabaseSeeder.php, vous devez ajouter :

public function run()

{

   $this->call(UsersTableSeeder::class);

}

Et c'est tout ! Bien sûr, vous lancez le seeder en utilisant artisan :

php artisan db:seed

Messages e-mail

Configurer et styliser des messages e-mail esthétiques prend des heures de travail. Cependant, ici aussi, tout est simplifié au maximum. Bien sûr, vous devez commencer par la commande :

php artisan make:mail HelloWorldMail –markdown emails.hello-world

Grâce à cela, deux fichiers ont été créés. Tout d'abord : si vous allez dans resources/views/mails/hello-world/blade.php, vous pouvez éditer votre message e-mail. Deuxièmement : une classe \App\Mail\HelloWorldMail a été créée, que vous devez utiliser lors de l'envoi d'un message. Vous pouvez également transférer des variables vers la vue hello-world.blade.php, telles que le nom de l'utilisateur à qui vous envoyez le message.

L'intégration avec mailgun ou mailtrap est également très simple. Dans le cas de ce dernier, il suffit de saisir le login et le mot de passe dans le fichier .env.

Telescope

Enfin, je voudrais présenter un excellent outil qui vous permet de déboguer et d'optimiser votre application. Grâce à Telescope, vous pouvez voir ce qui se passe réellement "en arrière-plan" pendant le fonctionnement de Laravel. Vous installez Telescope en utilisant trois commandes :

composer require laravel/telescope
php artisan telescope:install
php artisan migrate

Il ne vous reste plus qu'à aller sur /telescope et vous aurez accès aux requêtes, aux commandes exécutées avec artisan, aux erreurs, aux journaux, aux requêtes de base de données et à bien d'autres. Je recommande à tout le monde de passer un peu plus de temps à se familiariser avec cet outil.

telescope

Résumé

Nous utilisons Laravel chez Droptica quotidiennement. Ainsi, je suis heureux que, comme vous pouvez le voir dans les exemples ci-dessus, de nombreux processus chronophages lors du développement d'applications ont été simplifiés autant que possible. De plus, une rédaction de code efficace se résume principalement à connaître les commandes artisan, qui feront la majeure partie du travail pour vous. La documentation de Laravel a également été préparée de manière très simple et claire, et vous pouvez trouver de nombreux fils de discussion utiles sur des forums tels que StackOverflow ou Laracasts.

Présenté ci-dessous sont des liens vers la documentation des aspects spécifiques discutés dans cet article :

3. Best practices for software development teams