mcpField
L
laravel-state-machines

laravel-state-machines

github.com/leeovery开发1545 次安装2 周前更新
代码仓库

关于 laravel-state-machines

laravel-state-machines 是面向 Laravel 的状态管理技能,使用 Spatie Model States 处理复杂状态转换。内容涵盖状态类、转换验证、状态专属行为、测试,以及何时改用简单枚举。

主要功能

  1. 01配置 Spatie 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 状态机

使用 Spatie Model States 实现复杂的状态转换和验证。

核心概念

state-management.md - 状态机模式:

  • Spatie Model States 的设置
  • 带行为的状态类
  • 带验证的转换类
  • 状态专属方法
  • 何时使用状态机而非简单枚举
  • 测试状态转换

模式

// 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);

对于包含验证、副作用或状态专属行为的复杂状态,请使用状态机。对于基本状态字段,请使用简单枚举。

评论

支持 Markdown