castor es un ejecutor de tareas orientado a DX construido en PHP que presenta una variedad de funciones para el procesamiento de tareas comunes.
Puede verse como una alternativa a los scripts Makefile, Fabric, Invoke, Shell, etc., pero aprovecha las capacidades de scripting de PHP y el extenso ecosistema de bibliotecas.
Viene con muchas funciones para hacerte la vida más fácil:
run()
: ejecuta procesos externos, lo que permite una integración perfecta con herramientas externas.io()
: muestra una salida hermosa e interactúa con la terminalwatch()
: observa archivos y activa automáticamente acciones al modificar archivosfs()
: crea, elimina y manipula archivos y directoriosNota
castor aún se encuentra en una fase inicial de desarrollo y la API aún no es estable. Aunque es poco probable, es posible que cambie en el futuro.
En castor , las tareas se configuran como funciones PHP típicas marcadas con el atributo #[AsTask()]
en un archivo castor .php
.
Estas tareas pueden ejecutar cualquier código PHP pero también utilizan varias funciones para operaciones estándar que vienen empaquetadas con castor .
Por ejemplo:
<?php
namespace greetings ;
use castor Attribute AsTask ;
use function castor io ;
#[AsTask()]
function hello (): void
{
io ()-> writeln ( ' Hello from castor ' );
}
Expondrá una tarea greetings:hello
que puedes ejecutar con castor greetings:hello
:
$ castor greetings:hello
Hello from castor
Luego, puedes volverte loco y crear tareas más complejas:
#[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 desea leer más sobre el uso, puede leer la documentación de uso básica o ver algunos ejemplos.
Consejo
Esta es la forma recomendada de instalar castor en Linux y macOS. Requiere PHP >= 8.1.
curl " https://castor.jolicode.com/install " | bash
Hay otras formas de instalar castor ; consulte la documentación.
Descubra más leyendo los documentos:
run()