本文基于源代码调查整理。截至 2026 年 7 月,仓库仍在开发中。
什么是 Laravel Package Skeleton
Laravel Package Skeleton 是开发 Laravel 包时使用的启动模板。composer install 会自动启动交互式配置脚本 (configure.php),通过一问一答的方式设置包名、vendor 名、命名空间和要使用的功能。配置完成后就可以立即开始开发。
为什么需要这个骨架
如果“凭感觉”开始写 Laravel 包,搭建测试环境、静态分析、代码格式化、GitHub Actions 等大量与包逻辑本身无关的工作会占据你不少时间。 Laravel Package Skeleton 把 Laravel 团队在实际包开发中沉淀下来的最佳实践打包成了一个模板。用了这个模板,你就能跳过“环境搭建”,直接从包逻辑实现开始。包含的工具
| 工具 | 作用 |
|---|---|
| Pest | 测试框架 |
| Larastan | 面向 Laravel 的静态分析 |
| Pint | 代码格式化 |
| Orchestra Testbench | 包测试环境 |
| Workbench | 用于端到端开发的应用 |
可选的包功能
在composer install 的提示中,只选择需要的功能。未选择功能对应的脚手架会被自动删除。
| 功能 | 说明 |
|---|---|
| Config file | 在 config/ 下添加配置文件 |
| Routes | 添加路由文件 |
| Views | 添加 Blade 视图 |
| Translations | 添加语言文件 |
| Migrations | 添加迁移文件 |
| Assets | 添加对外发布的资源文件 |
| Commands | 添加 Artisan 命令 |
| Facade | 添加 Facade 类 |
| Boost Skill | 添加用于 AI 智能体的技能 |
可选的工具
功能之外,也可以按项目需要开关各种工具。| 工具 | 说明 |
|---|---|
| Dependabot | 依赖的自动更新 PR |
| Issue Template | GitHub Issue 模板 |
| Changelog | 发布时自动更新 CHANGELOG.md |
| Funding | GitHub Sponsors 赞助链接 |
| Security Policy | 安全漏洞报告策略 |
搭建流程
回答提示
按一问一答设置以下项:
- Author Name / Email
- Vendor 名(例如
kawax) - Package 名(例如
my-package) - Package 描述
- Class 名(例如
MyPackage) - 要使用的功能(多选)
- 要使用的工具(多选)
- 是否自动创建 GitHub 仓库(gh CLI 已登录时)
非交互模式
从 CI 或脚本中运行时,使用--no-interaction。
GitHub Actions CI
骨架里的tests.yml 是一个矩阵构建,会对多种 PHP、Laravel 版本和操作系统组合运行测试。
- PHPStan(
composer analyse)——静态分析 - Pint(
composer lint:check)——代码风格检查 - 类型覆盖率(
composer test:types)——类型覆盖率 100% 检查(仅 Ubuntu) - Pest(
composer test:unit)——单元测试(仅 Ubuntu)
Changelog 自动化
update-changelog.yml 会以 GitHub Release 为触发,自动更新 CHANGELOG.md。release.yml 会按 PR 标签对变更进行分类生成发布说明。
发布说明中的标签:
| 标签 | 分类 |
|---|---|
breaking | 破坏性变更 |
enhancement | 新增功能 |
bug | Bug 修复 |
documentation | 文档 |
dependencies | 依赖 |
maintenance | 维护 |
skip-changelog | 不进入变更日志 |
configure.php 做的事
configure.php 是一个只运行一次的配置 bootstrap 脚本,运行完就会被删除。
安装后的 GitHub 设置
README 中列出的安装后推荐设置:- Dependabot PR 请手动 review —— 骨架里没有包含自动合并的工作流
- 创建发布说明所需的标签 ——
breaking、enhancement、bug、documentation、dependencies、maintenance、skip-changelog、duplicate - 设置
main分支保护 —— Changelog 自动化会通过 GitHub Actions 向CHANGELOG.md提交,分支保护规则需要相应调整
GITHUB_TOKEN。
当前开发状态
- GitHub 仓库:laravel/package-skeleton
- 公开时间:2026 年 7 月(积极开发中)
- 注意:仍处于开发早期,API 和结构可能会变更
laravel/package-skeleton 仓库
源代码和最新信息请查看这里。
包开发官方文档
Laravel 包开发的基础知识请参考官方文档。