跳转到主要内容
本文基于源代码调查整理。截至 2026 年 7 月,仓库仍在开发中。

什么是 Laravel Package Skeleton

Laravel Package Skeleton 是开发 Laravel 包时使用的启动模板。
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
composer install
执行 composer install 会自动启动交互式配置脚本 (configure.php),通过一问一答的方式设置包名、vendor 名、命名空间和要使用的功能。配置完成后就可以立即开始开发。

为什么需要这个骨架

如果“凭感觉”开始写 Laravel 包,搭建测试环境、静态分析、代码格式化、GitHub Actions 等大量与包逻辑本身无关的工作会占据你不少时间。 Laravel Package Skeleton 把 Laravel 团队在实际包开发中沉淀下来的最佳实践打包成了一个模板。用了这个模板,你就能跳过“环境搭建”,直接从包逻辑实现开始。

包含的工具

工具作用
Pest测试框架
Larastan面向 Laravel 的静态分析
Pint代码格式化
Orchestra Testbench包测试环境
Workbench用于端到端开发的应用

可选的包功能

composer install 的提示中,只选择需要的功能。未选择功能对应的脚手架会被自动删除。
功能说明
Config fileconfig/ 下添加配置文件
Routes添加路由文件
Views添加 Blade 视图
Translations添加语言文件
Migrations添加迁移文件
Assets添加对外发布的资源文件
Commands添加 Artisan 命令
Facade添加 Facade 类
Boost Skill添加用于 AI 智能体的技能

可选的工具

功能之外,也可以按项目需要开关各种工具。
工具说明
Dependabot依赖的自动更新 PR
Issue TemplateGitHub Issue 模板
Changelog发布时自动更新 CHANGELOG.md
FundingGitHub Sponsors 赞助链接
Security Policy安全漏洞报告策略

搭建流程

1

基于模板创建仓库

在 GitHub 上点击 Use this template 创建新仓库,或者直接克隆。
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
2

安装依赖

执行 composer install,configure.php 会自动启动。
composer install
想手动执行脚本时,使用 --no-scripts
composer install --no-scripts
php configure.php
3

回答提示

按一问一答设置以下项:
  • Author Name / Email
  • Vendor 名(例如 kawax)
  • Package 名(例如 my-package)
  • Package 描述
  • Class 名(例如 MyPackage)
  • 要使用的功能(多选)
  • 要使用的工具(多选)
  • 是否自动创建 GitHub 仓库(gh CLI 已登录时)
4

验证

composer test
会依次执行 PHPStan → Pint → 类型覆盖率 → Pest。
5

用 Workbench 做端到端测试

composer serve
http://localhost:8000 会启动一个用于验证包的简易 Laravel 应用。

非交互模式

从 CI 或脚本中运行时,使用 --no-interaction
php configure.php --no-interaction --config --routes
指定功能标志时,只会包含指定的功能。省略标志时会包含所有功能。

GitHub Actions CI

骨架里的 tests.yml 是一个矩阵构建,会对多种 PHP、Laravel 版本和操作系统组合运行测试。
matrix:
  os: [ubuntu-latest, windows-latest]
  php: [8.3, 8.4, 8.5]
  laravel: [12.*, 13.*]
  stability: [prefer-lowest, prefer-stable]
每个 job 里执行的内容:
  1. PHPStan(composer analyse)——静态分析
  2. Pint(composer lint:check)——代码风格检查
  3. 类型覆盖率(composer test:types)——类型覆盖率 100% 检查(仅 Ubuntu)
  4. Pest(composer test:unit)——单元测试(仅 Ubuntu)

Changelog 自动化

update-changelog.yml 会以 GitHub Release 为触发,自动更新 CHANGELOG.mdrelease.yml 会按 PR 标签对变更进行分类生成发布说明。 发布说明中的标签:
标签分类
breaking破坏性变更
enhancement新增功能
bugBug 修复
documentation文档
dependencies依赖
maintenance维护
skip-changelog不进入变更日志

configure.php 做的事

configure.php 是一个只运行一次的配置 bootstrap 脚本,运行完就会被删除。

安装后的 GitHub 设置

README 中列出的安装后推荐设置:
  • Dependabot PR 请手动 review —— 骨架里没有包含自动合并的工作流
  • 创建发布说明所需的标签 —— breakingenhancementbugdocumentationdependenciesmaintenanceskip-changelogduplicate
  • 设置 main 分支保护 —— Changelog 自动化会通过 GitHub Actions 向 CHANGELOG.md 提交,分支保护规则需要相应调整
不需要额外的仓库 secrets。骨架里的工作流使用 GitHub 内置的 GITHUB_TOKEN

当前开发状态

  • GitHub 仓库:laravel/package-skeleton
  • 公开时间:2026 年 7 月(积极开发中)
  • 注意:仍处于开发早期,API 和结构可能会变更
如果你现在要开始写 Laravel 包,与其自己从零搭一个骨架,不如从这个模板起步。它凝聚了 Laravel 团队多年包开发中沉淀下来的最佳实践。

laravel/package-skeleton 仓库

源代码和最新信息请查看这里。

包开发官方文档

Laravel 包开发的基础知识请参考官方文档。
最后修改于 2026年7月13日