Introduction à Castor : Un Task Runner en PHP
Je me promène toujours avec un fichier Makefile dans mes projets, un fichier Makefile qui me sert, entre autres, à exécuter pas mal de commandes Docker. Cela m’évite de retaper à chaque fois docker compose exec ..., et comme je ne suis pas un expert du shell, cela peut vite devenir compliqué pour ajouter une simple commande.
Durant la Symfony Live 2024, @Lyrixx (de Jolicode) a fait un lightning talk sur Castor. J’avais déjà commencé à regarder cela il y a quelques temps sans vraiment m’y pencher sérieusement, mais @Lyrixx m’a donné envie de m’y remettre, et je pense que je peux vous l’avouer, je viens d’adopter un castor !
Qu’est-ce que Castor ?
Le principe est le même que celui d’un Makefile, donc pour moi un “Task Runner”. Le gros avantage, c’est que c’est du PHP, on se sent comme à la maison ! Voici tout de suite le classique “Hello World” :
#[AsTask(description: 'Welcome to Castor!')]
function hello(): void
{
$currentUser = capture('whoami');
io()->title(sprintf('Hello %s!', $currentUser));
notify('Welcome to Castor!');
}
Et voilà une commande ! Je vous invite à consulter la documentation officielle qui est très bien faite. Castor utilise un fichier castor.php dans lequel vous allez mettre vos commandes.
