castor est un exécuteur de tâches orienté DX construit en PHP et proposant une gamme de fonctions pour le traitement des tâches courantes.
Il peut être considéré comme une alternative aux scripts Makefile, Fabric, Invoke, Shell, etc., mais il exploite les capacités de script de PHP et le vaste écosystème de bibliothèques.
Il est doté de nombreuses fonctionnalités pour vous faciliter la vie :
run()
: Exécutez des processus externes, permettant une intégration transparente avec des outils externesio()
: affiche une belle sortie et interagit avec le terminalwatch()
: Surveille les fichiers et déclenche automatiquement des actions sur les modifications de fichiersfs()
: Créer, supprimer et manipuler des fichiers et des répertoiresNote
castor en est encore aux premiers stades de développement et l'API n'est pas encore stable. Même si cela est peu probable, il est toujours possible que cela change à l’avenir.
Dans castor , les tâches sont configurées comme des fonctions PHP typiques marquées par l'attribut #[AsTask()]
dans un fichier castor .php
.
Ces tâches peuvent exécuter n'importe quel code PHP mais également utiliser diverses fonctions pour les opérations standard pré-emballées avec castor .
Par exemple:
<?php
namespace greetings ;
use castor Attribute AsTask ;
use function castor io ;
#[AsTask()]
function hello (): void
{
io ()-> writeln ( ' Hello from castor ' );
}
Exposera une tâche greetings:hello
que vous pouvez exécuter avec castor greetings:hello
:
$ castor greetings:hello
Hello from castor
Ensuite, vous pouvez vous déchaîner et créer des tâches plus complexes :
#[AsTask(description: ' Clean the infrastructure (remove container, volume, networks) ' )]
function destroy ( bool $ force = false )
{
if (! $ force ) {
io ()-> warning ( ' This will permanently remove all containers, volumes, networks... created for this project. ' );
io ()-> comment ( ' You can use the --force option to avoid this confirmation. ' );
if (! io ()-> confirm ( ' Are you sure? ' , false )) {
io ()-> comment ( ' Aborted. ' );
return ;
}
}
run ( ' docker-compose down -v --remove-orphans --volumes --rmi=local ' );
notify ( ' The infrastructure has been destroyed. ' )
}
Si vous souhaitez en savoir plus sur l'utilisation, vous pouvez lire la documentation d'utilisation de base ou regarder quelques exemples.
Conseil
Il s'agit de la méthode recommandée pour installer castor sous Linux et macOS. Il nécessite PHP >= 8.1.
curl " https://castor.jolicode.com/install " | bash
Il existe d'autres façons d'installer castor , veuillez vous référer à la documentation.
Découvrez-en davantage en lisant la documentation :
run()