关于 laravel-state-machines
laravel-state-machines 是面向 Laravel 的状态管理技能,使用 Spatie Model States 处理复杂状态转换。内容涵盖状态类、转换验证、状态专属行为、测试,以及何时改用简单枚举。
主要功能
- 01配置 Spatie Model States
- 02定义带行为的状态类
- 03创建带验证的转换类
- 04实现状态专属方法
- 05测试状态转换并选择枚举
适用场景
- 01建模带验证的订单状态变更
- 02添加特定状态对应的行为
- 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