- 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.
- 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.
- 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.
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