从pretty-routes学起:基于Spatie package-tools快速开发标准Laravel包的完整教程 从pretty-routes学起:基于Spatie package-tools快速开发标准Laravel包的完整教程【免费下载链接】pretty-routesDisplay your Laravel routes in the console, but make it pretty. 项目地址: https://gitcode.com/gh_mirrors/pre/pretty-routespretty-routes 是一个用终端美化展示 Laravel 路由表的轻量级 Laravel 包。本文以这个项目为范本借助 Spatie package-tools手把手带你看一个标准 Laravel 包如何从零搭建从 composer.json 元数据、服务提供者注册、控制台命令开发到用 Orchestra Testbench 搭建测试环境全流程一览。一、什么是 pretty-routes1分钟了解这个 Laravel 路由美化包默认的php artisan route:list输出朴素难读而 pretty-routes 只需一条命令composer require wulfheart/pretty_routes php artisan route:pretty它会把 HTTP 方法按颜色区分GET 绿色、POST 紫红、DELETE 红色用点线对齐 URI 与路由名路由参数{id}还会高亮显示大型项目的路由表瞬间变得清爽。它还支持一整套过滤参数--only-path、--except-name、--groupname、--reverse等比如php artisan route:pretty --except-pathhorizon --grouppath即可按路径分组并排除指定路由。 小提示该功能后来被并入 Laravel 9 原生的route:list作者已将包标记为 deprecated——但这恰恰让它成为学习 Laravel 包结构的教科书级极简样本核心源码只有两个文件麻雀虽小五脏俱全。二、为什么选它当模板标准包结构一眼看懂整个项目就是 Spatie 包工具链生成的标准骨架每个文件职责清晰文件作用composer.json包元数据、依赖声明与自动注册配置src/PrettyRoutesServiceProvider.php服务提供者接入 Spatie package-toolssrc/Commands/PrettyRoutesCommand.phproute:pretty命令的核心实现tests/TestCase.php基于 Orchestra Testbench 的测试基类tests/SnapshotTest.php用快照断言验证控制台输出phpunit.xml.distPHPUnit 运行环境配置三、快速上手最快体验 Laravel 路由美化方法本地克隆仓库即可跑起来git clone https://gitcode.com/gh_mirrors/pre/pretty-routes composer install php artisan route:pretty命令的选项声明写在命令类的$signature属性中见 PrettyRoutesCommand.php9 个参数覆盖了排序、过滤、分组、反转等常见需求——这是 Laravel 控制台命令的惯用写法值得新手模仿。四、基于 Spatie package-tools 开发标准 Laravel 包5步完整教程第1步用 composer.json 声明包元数据与自动注册打开 composer.json关键有三处require中引入spatie/laravel-package-tools作为核心依赖autoload配置 PSR-4 命名空间映射让Wulfheart\PrettyRoutes\对应src/目录extra.laravel.providers声明服务提供者——这样 Laravel 会自动发现并注册包宿主项目零配置。require-dev里还带了 psalm、collision、laravel-ray、paratest这正是 Spatie 包模板的标配四件套静态分析、报错美化、调试工具、并行测试。第2步写服务提供者两行代码接入包工具标准 Laravel 包的服务提供者非常薄PrettyRoutesServiceProvider.php 全部逻辑如下$package -name(pretty_routes) -hasCommand(PrettyRoutesCommand::class);继承 Spatie 的PackageServiceProvider后只需在configurePackage中声明包名和命令配置合并、路由加载、资源发布等样板代码全部由框架代劳。第3步开发控制台命令设计你的过滤参数命令类继承Illuminate\Console\Command核心流程三步走读取路由 → 按选项过滤排序 → 渲染彩色输出逻辑见 PrettyRoutesCommand.php。其中按 HTTP 方法上色、按终端宽度对齐点线是 Laravel 控制台美化输出的典型技巧。第4步用 Orchestra Testbench 搭建包测试环境包不能依赖完整项目tests/TestCase.php 继承Orchestra\Testbench\TestCase通过getPackageProviders注册服务提供者、defineRoutes定义一套测试路由就拥有了一个可独立运行的迷你应用。tests/SnapshotTest.php 更妙借助 Spatie 的快照断言库用数据提供器批量执行 24 组不同参数的命令把控制台输出与tests/__snapshots__/下的基准文件逐一比对——输出格式一旦回归测试立刻报警。第5步一键运行测试与静态分析composer.json的scripts已备好快捷命令见 composer.jsoncomposer test # testbench 并行跑全部包测试 composer psalm # psalm 静态分析配合 phpunit.xml.dist 中预设的 sqlite 内存库、array 缓存等测试环境变量composer install之后即可开箱测试。五、标准 Laravel 包开发检查清单 步骤检查项本项目参考✅ 1包名遵循作者/包名规范wulfheart/pretty_routes✅ 2引入 Spatie package-toolsrequire段✅ 3PSR-4 自动加载映射autoload段✅ 4extra.laravel自动注册提供者extra段✅ 5服务提供者继承 PackageServiceProvidersrc/目录✅ 6Testbench 测试基类 快照测试tests/目录✅ 7CHANGELOG 与 MIT 许可证CHANGELOG.md、LICENSE.md六、总结pretty-routes 用两个核心源码文件 一套测试完整演示了 Spatie package-tools 体系下标准 Laravel 包的最小形态自动注册、命令开发、Testbench 测试、快照断言一应俱全。新手照着 README.md 走一遍再对照目录结构即可快速开发出自己的第一个 Laravel 包 【免费下载链接】pretty-routesDisplay your Laravel routes in the console, but make it pretty. 项目地址: https://gitcode.com/gh_mirrors/pre/pretty-routes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考