Logomark

LARAVEL

Un framework qui rend heureux
Voir cette catégorie
Vers le bas
Nice Artisan
Samedi 13 juillet 2024 15:06

Artisan, un outil incontournable de Laravel, est apprécié pour sa simplicité et son efficacité. Malgré ses nombreuses qualités, certains pourraient trouver son interface de ligne de commande limitante. Bien que cette interface soit nécessaire pour certaines fonctions, la plupart des commandes pourraient être plus facilement accessibles via une interface web.
Cette idée a donc évolué vers la création d'un package Laravel que j'avais créé alors qu'on en était encore à la version 5 de Laravel, ouvrant ainsi la voie à une interface web pour Artisan. Cette tâche exigeait de s'immerger dans le code source, notamment dans celui de Symfony, sur lequel Artisan repose. Au terme d'un travail délicat, j'avais finalement abouti à un produit fonctionnel et prêt à être utilisé. Depuis je l'ai fait évoluer au fil des versions de Laravel.
Ce package offre plusieurs avantages :
  1. Accessibilité : Une interface web rend les commandes Artisan plus faciles à utiliser, particulièrement pour les développeurs qui n'ont pas l'habitude des interfaces en ligne de commande.
  2. Fonctionnalités étendues : La possibilité d'intégrer des fonctionnalités supplémentaires via une interface web, comme des notifications, des options de personnalisation, etc. Je n'en ai pas prévus, mais c'est tout à fait envisageable à l'avenir.
  3. Productivité accrue : Une interface web peut accélérer les processus de développement en permettant aux développeurs de gérer leurs commandes Artisan sans avoir à quitter leur navigateur web.
En conclusion, la création d'un package Laravel fournissant une interface web pour Artisan a permis de rendre ce puissant outil plus accessible et plus efficace, apportant ainsi une plus-value significative aux développeurs utilisant Laravel pour leurs projets. le présent article a pour but de vous faire découvrir ce package.

Installation

Le projet est hébergé sur Github : Pour installer le package, c'est facile, il suffit d'utiliser Composer :
composer require bestmomo/nice-artisan
Faire un petit composer dumpautoload. La dernière étape consiste à publier la configuration :
php artisan vendor:publish
L'interface d'Artisan est alors accessible avec l'url .../niceartisan : Les commandes personnalisées et celles ajoutées par des packages figurent dans la dernière option Customs.

Utilisation

Les commandes sont classées par catégories. Par défaut ce sont les make qui apparaissent. Il suffit de cliquer sur la commande voulue pour ouvrir le panneau correspondant, par exemple pour créer une classe pour les emails :

On entre le nom et on coche les options voulues : Il ne reste plus alors qu'à cliquer sur le bouton. Si tout s'est bien passé, on reçoit un message de succès : Et on trouve bien la classe à sa place :
<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class MonEmail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     */
    public function __construct()
    {
        //
    }

    /**
     * Get the message envelope.
     */
    public function envelope(): Envelope
    {
        return new Envelope(
            subject: 'Mon Email',
        );
    }

    /**
     * Get the message content definition.
     */
    public function content(): Content
    {
        return new Content(
            view: 'on',
        );
    }

    /**
     * Get the attachments for the message.
     *
     * @return array<int, \Illuminate\Mail\Mailables\Attachment>
     */
    public function attachments(): array
    {
        return [];
    }
}
Je ne vais évidemment pas détailler toutes les commandes parce que le principe est toujours le même. Par exemple pour les routes :

Il devient très facile avec un simple clic d'afficher la liste ou de nettoyer le cache, des actions très fréquentes quand on développe.

Configuration

Le fichier de configuration publié est ici : Les commandes sont classées par catégories :
'commands' => [

/*
| Make commands
*/
'make' => [
    'make:cast',
    'make:cache-table',
    'make:channel',
    'make:class',
    'make:command',
    'make:controller',
    'make:component',
    'make:enum',
    'make:event',
    'make:exception',
    'make:factory',
    'make:interface',
    'make:job',
    'make:listener',
    'make:mail',
    'make:middleware',
    'make:migration',
    'make:model',
    'make:notification',
    'make:notifications-table',
    'make:observer',
    'make:policy',
    'make:provider',
    'make:queue-batches-table',
    'make:queue-failed-table',
    'make:queue-table',
    'make:request',
    'make:resource',
    'make:rule',
    'make:scope',
    'make:seeder',
    'make:session-table',
    'make:test',
    'make:trait',
    'make:view',
    'make:interface'
],

/*
| Migrate commands
*/
'migrate' => [
    'migrate',
    'migrate:fresh',
    'migrate:install',
    'migrate:rollback',
    'migrate:reset',
    'migrate:refresh',
    'migrate:status',
],
...

Le menu est créé à partir des catégories de la configuration et les commandes correspondantes figurent dans le panneau associé. Vous pouvez changer ce que vous voulez dans cette configuration tout en utilisant des noms de commande qui existent !

Sécurité

Ce package est plutôt destiné au développement local. Si vous voulez l'utiliser sur votre serveur de production, il faut sécuriser l'accès aux commandes pour une évidente question de sécurité.

Vous pouvez ajouter un middleware Dans le fichier de configuration (config/commands.php) :

/*
| Package settings
*/
'settings' => [
    'route' => 'niceartisan',    
    'middlewares' => [
        'web',
        // 'nice_artisan',
    ],
],

J'en ai mis un commenté (nice_artisan), vous pouvez le décommenter et utiliser ce nom ou choisir n'importe quel nom à votre choix.

Ainsi, seules les personnes autorisées pourront jouer avec les commandes d'Artisan, ce qui est plus sûr.

Conclusion

J'espère que ce petit outil vous simplifiera la vie !


Par bestmomo

Nombre de commentaires : 2