castor — это DX-ориентированный инструмент запуска задач, встроенный в PHP и обладающий рядом функций для стандартной обработки задач.
Его можно рассматривать как альтернативу сценариям Makefile, Fabric, Invoke, Shell и т. д., но он использует возможности сценариев PHP и обширную библиотечную экосистему.
Он имеет множество функций, которые сделают вашу жизнь проще:
run() : запускает внешние процессы, обеспечивая плавную интеграцию с внешними инструментами.io() : отображает красивый вывод и взаимодействует с терминалом.watch() : наблюдает за файлами и автоматически запускает действия при их изменении.fs() : создание, удаление и управление файлами и каталогами.Примечание
castor все еще находится на ранней стадии разработки, и API еще не стабилен. Даже если это маловероятно, все же возможно, что в будущем ситуация изменится.
В castor задачи настраиваются как типичные функции PHP, отмеченные атрибутом #[AsTask()] в файле castor .php .
Эти задачи могут запускать любой PHP-код, а также использовать различные функции для стандартных операций, которые предварительно включены в состав castor .
Например:
<?php
namespace greetings ;
use castor Attribute AsTask ;
use function castor io ;
#[AsTask()]
function hello (): void
{
io ()-> writeln ( ' Hello from castor ' );
} Будет предоставлена задача greetings:hello , которую можно запустить с помощью castor greetings:hello :
$ castor greetings:hello
Hello from castorЗатем вы можете пойти дальше и создать более сложные задачи:
#[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. ' )
}Если вы хотите узнать больше об использовании, вы можете прочитать базовую документацию по использованию или посмотреть несколько примеров.
Кончик
Это рекомендуемый способ установки castor в Linux и macOS. Требуется PHP >= 8.1.
curl " https://castor.jolicode.com/install " | bashСуществуют и другие способы установки castor , обратитесь к документации.
Узнайте больше, прочитав документацию:
run()