用途:面向 Laravel 项目的包开发与代码抽取,帮助把可复用模式从项目中提取为独立 Composer 包,供多个项目共用。
何时抽取:当某模式已在 3 个以上项目使用、代码稳定且测试充分、边界清晰、维护成本合理时,才考虑抽取为包。
包结构:典型目录包含 src/(如 PackageServiceProvider.php、Actions/、DTOs/ 等)、tests/、composer.json 与 README.md。建议使用语义化版本,独立测试包,并清晰编写文档。
核心包(常用): Spatie Laravel Data:composer require spatie/laravel-data,提供带类型转换、验证、转换器的 DTO,并支持测试工厂。 Spatie Model States:composer require spatie/laravel-model-states,实现状态机模式,用专门类处理状态转换。 Spatie Query Builder:composer require spatie/laravel-query-builder,通过查询字符串过滤、排序、加载关联,适合 API 查询。 Saloon:composer require saloonphp/saloon saloonphp/laravel-plugin,用于构建优雅且可测试的外部 API 客户端。 Pest:composer require pestphp/pest pestphp/pest-plugin-laravel --dev,表达力强的测试框架,支持架构测试。
可选包:Laravel Sanctum(需要 API 认证时)、Stancl Tenancy(多租户应用时)、Spatie Settings(需要应用级设置时),均以 composer require 安装。
完整安装命令:
composer require
spatie/laravel-data
spatie/laravel-model-states
spatie/laravel-query-builder
saloonphp/saloon
saloonphp/laravel-plugin
composer require
pestphp/pest
pestphp/pest-plugin-laravel
--dev
./vendor/bin/pest --init
最小安装: composer require spatie/laravel-data composer require pestphp/pest pestphp/pest-plugin-laravel --dev ./vendor/bin/pest --init
限制:资料未提供具体版本要求、兼容性说明、性能数据或收费信息,使用前需自行确认。