用途:在 Laravel 项目中按 lorisleiva/laravel-actions 实现或更新 Action 类,统一结构与测试模式。
主要能力:用 AsAction trait 定义 Action,核心业务逻辑写在 handle(...);按需添加适配方法 asController、asJob、asListener、asCommand,分别对应 HTTP、队列、事件、CLI 入口。支持静态 run、make()->handle、依赖注入调用;控制器可用可调用类路由;任务用 dispatch 并支持 $jobTries、$jobMaxExceptions、getJobRetryUntil、getJobBackoff、getJobUniqueId 等队列控制;监听器需在 EventServiceProvider 注册;命令用 $commandSignature 与 $commandDescription。
使用方式:先用 composer show lorisleiva/laravel-actions 确认安装;类放在 App\Actions,采用动词+名词命名;handle 保持领域逻辑,传输层逻辑放适配方法。测试分两层:直接测 handle 的业务正确性,再测各入口的接线。fake 提供 mock、partialMock、spy、shouldRun、shouldNotRun、allowToRun、isFake、clearFake 等方法。
适用场景:同一用例需要多种入口或需要编排与 fake 时使用 Action;单入口、局部逻辑可保留普通服务类。
限制:资料未提供版本兼容、性能与收费信息;需注意避免把响应逻辑写入 handle、在 as* 方法重复业务规则、忽略监听器注册,以及只测入口不测 handle。