castor
v0.21.0
castor 、一般的なタスク処理のためのさまざまな関数を備えた PHP で構築されたDX 指向のタスク ランナーです。
これは Makefile、Fabric、Invoke、Shell スクリプトなどの代替として見ることができますが、PHP のスクリプト機能と広範なライブラリ エコシステムを活用しています。
作業を楽にするための多くの機能が付属しています。
run()
: 外部プロセスを実行し、外部ツールとのシームレスな統合を可能にしますio()
: 美しい出力を表示し、端末と対話します。watch()
: ファイルを監視し、ファイル変更時にアクションを自動的にトリガーしますfs()
: ファイルとディレクトリの作成、削除、操作注記
castorまだ開発初期段階にあり、API はまだ安定していません。可能性は低いとしても、将来的に変更される可能性はあります。
castorでは、タスクはcastor .php
ファイル内の#[AsTask()]
属性でマークされた一般的な 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
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. ' )
}
使用法について詳しく知りたい場合は、基本的な使用法に関するドキュメントを読むか、いくつかの例をご覧ください。
ヒント
これは、Linux および macOS にcastorインストールするための推奨される方法です。 PHP 8.1 以上が必要です。
curl " https://castor.jolicode.com/install " | bash
castorインストールする他の方法もあります。ドキュメントを参照してください。
詳細については、ドキュメントを読んでください。
run()
によるプロセスの実行