关于 laravel-packages
面向 Laravel 包开发者的实践指南,介绍如何判断代码是否适合提取为可复用包,以及包的基本结构。列出常用与可选依赖及其适用场景。
主要功能
- 01提供包提取条件
- 02说明包目录结构
- 03建议语义化版本与独立测试
- 04列出常用 Spatie 包
- 05介绍可选 Laravel 包
适用场景
- 01评估跨项目复用代码是否应提取
- 02搭建 Laravel 包的基础目录
- 03选择 DTO、状态机或查询构建依赖
- 04按需为应用添加认证或多租户包
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ leeovery/ agentic-skills --skill laravel-packages安装后在 Claude Code 中输入/laravel-packages确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/ExampleAction.phpExampleBaseData.phpExampleServiceProvider.phppackage-extraction.md详细介绍
Laravel 包
包开发:提取可在多个项目中复用的模式。
相关指南:
- package-extraction.md - 将代码提取为包
- DTOs - 使用 Spatie Laravel Data
- Models - 使用 Spatie Model States 和 Query Builder
何时提取
在以下情况下提取为包:
- 模式已在 3 个以上的项目中使用
- 代码稳定且经过充分测试
- 模式边界清晰
- 维护成本合理
→ 完整提取指南:package-extraction.md
包结构
my-package/
├── 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
composer require laravel/sanctum
适用场景: 需要 API 身份验证时
Stancl Tenancy
composer require stancl/tenancy
适用场景: 多租户应用程序
Spatie Settings
composer require spatie/laravel-settings
适用场景: 需要应用级设置时
安装命令
完整安装
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
评论
支持 Markdown