mcpField
L
laravel-packages

laravel-packages

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

关于 laravel-packages

面向 Laravel 包开发者的实践指南,介绍如何判断代码是否适合提取为可复用包,以及包的基本结构。列出常用与可选依赖及其适用场景。

主要功能

  1. 01提供包提取条件
  2. 02说明包目录结构
  3. 03建议语义化版本与独立测试
  4. 04列出常用 Spatie 包
  5. 05介绍可选 Laravel 包

适用场景

  1. 01评估跨项目复用代码是否应提取
  2. 02搭建 Laravel 包的基础目录
  3. 03选择 DTO、状态机或查询构建依赖
  4. 04按需为应用添加认证或多租户包

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/leeovery/agentic-skills --skill laravel-packages

安装后在 Claude Code 中输入/laravel-packages确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
ExampleAction.php
ExampleBaseData.php
ExampleServiceProvider.php
package-extraction.md

详细介绍

Laravel 包

包开发:提取可在多个项目中复用的模式。

相关指南:

何时提取

在以下情况下提取为包:

  1. 模式已在 3 个以上的项目中使用
  2. 代码稳定且经过充分测试
  3. 模式边界清晰
  4. 维护成本合理

→ 完整提取指南: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