castor é um executor de tarefas orientado a DX construído em PHP que apresenta uma variedade de funções para processamento de tarefas comuns.
Ele pode ser visto como uma alternativa aos scripts Makefile, Fabric, Invoke, Shell, etc., mas aproveita os recursos de script do PHP e o extenso ecossistema de bibliotecas.
Ele vem com muitos recursos para facilitar sua vida:
run()
: executa processos externos, permitindo integração perfeita com ferramentas externasio()
: exibe uma bela saída e interage com o terminalwatch()
: monitora arquivos e aciona automaticamente ações em modificações de arquivosfs()
: Crie, remova e manipule arquivos e diretóriosObservação
castor ainda está em desenvolvimento inicial e a API ainda não está estável. Mesmo que seja improvável, ainda é possível que isso mude no futuro.
Em castor , as tarefas são configuradas como funções PHP típicas marcadas com o atributo #[AsTask()]
em um arquivo castor .php
.
Essas tarefas podem executar qualquer código PHP, mas também fazer uso de diversas funções para operações padrão que vêm pré-empacotadas com castor .
Por exemplo:
<?php
namespace greetings ;
use castor Attribute AsTask ;
use function castor io ;
#[AsTask()]
function hello (): void
{
io ()-> writeln ( ' Hello from castor ' );
}
Irá expor uma tarefa greetings:hello
que você pode executar com castor greetings:hello
:
$ castor greetings:hello
Hello from castor
Então, você pode enlouquecer e criar tarefas mais complexas:
#[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. ' )
}
Se quiser ler mais sobre o uso, você pode ler a documentação básica de uso ou assistir a alguns exemplos.
Dica
Esta é a forma recomendada de instalar castor no Linux e macOS. Requer PHP >= 8.1.
curl " https://castor.jolicode.com/install " | bash
Existem outras maneiras de instalar castor , consulte a documentação.
Descubra mais lendo os documentos:
run()