Scripts e Comandi Personalizzati con Composer | Aulab

GUIDE PER ASPIRANTI PROGRAMMATORI

Scripts e Comandi Personalizzati con Composer

Composer non solo facilita la gestione delle dipendenze e l’autoloading, ma offre anche la possibilità di definire e eseguire script personalizzati permettendo di automatizzare una serie di task di sviluppo. Definizione degli Script con Composer Gli script vanno definiti all’interno della sezione scripts del file composer.json. Questi possono essere semplici comandi shell o riferimenti a…

Lezione 14 / 33
Enza Neri
Immagine di copertina

Vuoi avviare una nuova carriera o fare un upgrade?

Trova il corso Digital & Tech più adatto a te nel nostro catalogo!

Composer non solo facilita la gestione delle dipendenze e l’autoloading, ma offre anche la possibilità di definire e eseguire script personalizzati permettendo di automatizzare una serie di task di sviluppo.

Definizione degli Script con Composer

Gli script vanno definiti all’interno della sezione scripts del file composer.json. Questi possono essere semplici comandi shell o riferimenti a classi PHP. In basso un esempio di sezione scripts del file composer.json:

"scripts": {
    "test": "phpunit",
    "start": "php -S localhost:8000 -t public",
    "cache-clear": [
        "@php bin/console cache:clear",
        "@php bin/console cache:warmup"
    ]
}

In questo esempio:

  • test: esegue PHPUnit per eseguire i test di unità definiti per il progetto.
  • start: avvia il server PHP incorporato.
  • cache-clear: esegue due comandi in serie per resettare la cache.

Esecuzione degli Script con Composer

Gli script possono essere eseguiti usando il comando composer run-script. Ad esempio, per eseguire lo script “start” definito nell’esempio, utilizzare il comando:

composer run-script start

Comandi Personalizzati con Composer

Composer permette anche di creare comandi personalizzati per estendere le funzionalità e per creare workflow custom. Per creare un comando personalizzato, come primo step è necessario creare una classe PHP che implementa l’interfaccia Composer\Command\Command. In basso un esempio:

namespace MyVendor;

use Composer\Command\BaseCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class CustomCommand extends BaseCommand
{
    protected function configure(): void 
    {
        $this->setName('my-custom-command');
    }

    protected function execute(InputInterface $input, OutputInterface $output): int
    {
        $output->writeln('Comando custom eseguito con successo :)');
        return 0;
    }
}

Creato il comando, è necessario registrarlo in composer.json:

"autoload": {
    "psr-4": {
        "MyVendor\\": "src/"
    }
},
"scripts": {
    "custom-command": "MyVendor\\CustomCommand "
}

Infine, per eseguire il comando:

composer custom-command

Come si nota nell’esempio, la classe creata include due metodi che fanno parte dei componenti di Symfony Console.

Sei indeciso sul percorso? 💭

Parliamone! Scrivici su Whatsapp e risponderemo a tutte le tue domande per capire quale dei nostri corsi è il più adatto alle tue esigenze.

Oppure chiamaci al 800 128 626