Étiquette : CLI

[PHP] Mémo – Créer une commande avec Laravel

[PHP] Mémo – Créer une commande avec Laravel

Laravel fournit une interface en ligne de commande qui permet d’exécuter des scripts PHP directement depuis un terminal. Celle-ci s’appelle Artisan. On peut ainsi facilement gérer des tâches comme l’envoi de mails, la copie de fichiers, ou effectuer des interactions en base de données.

Créer une commande avec Laravel

Créer la classe

Votre commande sera implémentée à l’aide d’une classe. Si ce n’est pas encore fait, créez le dossier Commands dans app\Console.

Ensuite créez une classe qui héritera de Command.

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class MyTestCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'my:test';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
    }
}

Voici ce qu’on retrouve dans la classe :

  • La signature de la commande (nom de la commande, arguments, options) ;
  • La description de la commande (un texte qui indique ce que fait la commande) ;
  • Un constructeur par défaut ;
  • Une méthode handle() qui contient la logique de la commande.

Enregistrer la commande

Il faudra enregistrer la commande en l’ajoutant au tableau défini dans la classe app\Console\Kernel.php.

    protected $commands = [
        MyTestCommand::class,
    ];

Dans les versions plus récentes de Laravel, toute classe qui se trouve dans le sous-dossier Commands, est chargée par défaut, du moins si on n’a pas enlevé l’appel qui se charge de cela.

Personnaliser la commande

On peut personnaliser la commande en y ajoutant des arguments et des options. On ajoute ceux-ci dans la signature.

Pour l’appel de la commande dans un terminal, préfixez chaque option par deux tirets courts. On n’ajoute rien de spécifique lorsqu’on spécifie un argument.

Exemple :

php artisan my:test argument1 --option1

Et dans la signature cela se traduit par :

protected $signature = 'my:test {argument1} {--option1}';

Pour récupérer :

  • Un argument : $this->argument(‘arg_name’);
  • Une option : $this->option(‘option_name’);

Exemple :

$this->option("option1");

Ceci renverra true si on spécifie l’option lors de l’appel de la commande, sinon false.

Évidemment on peut modifier la signature pour accepter des valeurs alphanumériques dans l’option. Dans ce cas, on doit adapter la signature en indiquant plutôt {option1=}.

On aura un appel similaire à ceci :

php artisan my:test argument1 --option1=TEST

Afficher des messages dans le terminal

Il existe deux méthodes que vous pouvez utiliser pour afficher une information ou une erreur.

  • $this->info(‘texte’);
  • $this->error(‘texte’);

Documentation

[Utilitaires] Scoop

[Utilitaires] Scoop

Scoop est un utilitaire qui s’exécute en ligne de commande via Windows Powershell et fait penser à apt-get dans son fonctionnement. Il permet en fait d’installer pour l’utilisateur en cours des applications – principalement pour le développement – sans demander d’élévation des privilèges, et sans se soucier de l’architecture de la machine, tout ça sans passer par un navigateur web. L’utilitaire télécharge lui-même le nécessaire et stocke ensuite les fichiers dans le dossier de l’utilisateur. On trouve principalement des outils de développement.

Pour fonctionner, il faut s’assurer d’avoir installé Powershell 3.0, en téléchargeant les mises à jour nécessaires ici pour votre système d’exploitation. Une fois que cela est fait, il faut alors ouvrir Powershell et exécuter la commande suivante :

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

Si l’installation ne fonctionne pas et qu’un message d’erreur s’affiche indiquant que l’exécution de scripts est désactivée, saisissez d’abord la commande suivante :

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

Une fois l’outil installé, vous pouvez par exemple saisir la commande « scoop help » pour obtenir plus d’informations quant aux différents arguments utilisables.

Par exemple :

  • scoop install NOM_APP : permet l’installation d’une application
  • scoop uninstall NOM_APP : désinstalle une application déjà installée.

Par défaut, Scoop utilise la liste d’applications disponible en suivant ce lien et extrait celles-ci dans le dossier C:\Users\NOM_USER\scoop\apps.

Il est évidemment possible d’utiliser d’autres sources, appelées « buckets« . Par exemple, le bucket extras propose davantage d’utilitaires Windows tels que Autoruns, CPU-Z, Notepad++, Handbrake, etc.

Pour qu’il soit pris en compte lors de la recherche et l’installation d’une application, il faut exécuter la commande suivante :

scoop bucket add extras

Pour en savoir plus, on retrouve sur Github la documentation officielle.

Site officiel

Scoop.sh