本文へ移動
BlackOps1.xは試験的なバージョンです。Production Readyは2.xを予定しています。Releases
BlackOps
Esc
navigateopen⌘Jpreview

BlackOps The PHP Framework

HTTPとWorkerの処理を一つのOperationとして扱い、受付・再試行・完了までを同じIDで追跡できるPHP Frameworkです。

入口がHTTPでもConsoleでもScheduleでも、ValueとContextをOperationへ渡し、InlineまたはDeferredの実行経路を選べます。

Stable 1.2.1

composer create-project blackops/skeleton my-app 1.2.1
BlackOps CLICommand、Runtime、Output、Exitを調べる
GenerateReport.phpPHP
#[Route(method: 'POST', path: '/reports')]
#[OperationType('report.generate')]
#[Deferred]
final readonly class GenerateReport implements Operation
{
    public function handle(
        GenerateReportValue $value,
        ExecutionContext $context,
    ): ReportGenerated
    {
        return new ReportGenerated(
            $value->reportName,
            '/reports/generated/' . $value->reportName . '.json',
        );
    }
}

HTTPの処理フロー

HTTPからOperationを実行する流れと、各段階で記録されるJournalイベントを確認できます。

HTTPリクエストを受けたプロセスで処理を実行し、完了した結果をレスポンスとして返す方式です。

現在の処理段階Inline 01 / 07

HTTPの入力をValueへ変換し、InlineまたはDeferredでOperationを実行してOutcomeへ進む処理経路の図。

Inline

01 / 07

HTTP Requestを受け取る

HTTP Requestを受け、Operationの入力処理を開始します。

詳しく見る

Operationの受付や実行結果を記録します。Operation IDで処理の経過を追えます。

    ※Deferredでは受付Commit後にHTTP 202の応答とWorkerの実行が重なることがあります。