mcpField
L
laravel-state-machines

laravel-state-machines

github.com/leeovery開発1545 回インストール2 週間前に更新
リポジトリ

laravel-state-machines について

laravel-state-machinesは、Spatie Model Statesを使ってLaravelの複雑な状態遷移を扱うスキルです。状態クラスや遷移の検証、状態固有の振る舞い、テスト、単純な列挙型との使い分けを説明します。

主な機能

  1. 01Spatie Model Statesのセットアップ
  2. 02振る舞いを持つ状態クラス
  3. 03検証付きの遷移クラス
  4. 04状態固有のメソッド
  5. 05遷移テストと列挙型の指針

活用シーン

  1. 01検証付きの注文ステータス変更のモデル化
  2. 02特定の状態に応じた振る舞いの追加
  3. 03ステートマシンと列挙型の選択

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/leeovery/agentic-skills --skill laravel-state-machines

インストール後、Claude Code で/laravel-state-machinesを入力して読み込まれたか確認します。

同梱ファイルreferences/state-management.md

詳細

Laravel State Machines

複雑な状態遷移とバリデーションに対応する、Spatie Model States による状態マシンです。

Core Concept

state-management.md - 状態マシンのパターン:

  • Spatie Model States のセットアップ
  • 動作を備えた状態クラス
  • バリデーションを備えた遷移クラス
  • 状態固有のメソッド
  • 状態マシンとシンプルな enum の使い分け
  • 状態遷移のテスト

Pattern

// State classes
final class DraftOrderState extends OrderState
{
    public function canBeSubmitted(): bool
    {
        return true;
    }
}

final class PendingOrderState extends OrderState
{
    public function canBeSubmitted(): bool
    {
        return false;
    }
}

// Transition class
final class SubmitOrderTransition extends Transition
{
    public function handle(): OrderState
    {
        // Validation and side effects

        return new PendingOrderState($this->order);
    }
}

// Usage
$order->status->transitionTo(PendingOrderState::class);

バリデーション、副作用、または状態固有の動作を伴う複雑な状態には、状態マシンを使用します。基本的なステータスフィールドには、シンプルな enum を使用します。

コメント