从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),仅供参考

相关新闻

最新新闻

桌面AI应用部署与测试全指南:从环境准备到功能验证

桌面AI应用部署与测试全指南:从环境准备到功能验证

这次我们来看一个名为“A desktop fly drawn to the scent of vibecode”的项目。从标题直译来看,它像是一个被“vibecode”气味吸引的桌面“苍蝇”,听起来有些抽象。结合当前AI和SaaS的热潮,以及“desktop”这个高频词,这个项目很…

2026/8/24 20:53:32
本地音频处理项目部署指南:从环境准备到功能验证全流程

本地音频处理项目部署指南:从环境准备到功能验证全流程

这次我们来看一个名为“無地歌, 非正弦ソウ”的项目,其核心是围绕“プロトコル”和“タキナビキ”这两个关键词展开的。从项目标题和命名风格来看,这很可能是一个涉及音频处理、音乐生成或某种特定数据协议的本地化工具或模型。对于技术爱好者而言&#…

2026/8/24 20:53:32
如何用 ncmdump:一次拖拽完成 NCM 转 MP3 批量转换

如何用 ncmdump:一次拖拽完成 NCM 转 MP3 批量转换

如何用 ncmdump:一次拖拽完成 NCM 转 MP3 批量转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 刚从网易云下好的歌,车机却弹出"格式不支持",问题出在 .ncm 这个后缀上。用 ncmdump …

2026/8/24 20:53:32
基于FFmpeg的跨平台视频音频合并方案:兼容国产系统与自动化实践

基于FFmpeg的跨平台视频音频合并方案:兼容国产系统与自动化实践

1. 背景与核心概念 在内容创作、教育培训、自媒体运营等场景中,我们经常需要将一段视频与背景音乐进行合成。无论是为旅行Vlog添加氛围音乐,还是为教学视频配上解说音轨,这都是一项高频需求。然而,当开发环境或目标用户群体横跨不…

2026/8/24 20:53:32
本地一键生成短剧视频:基于MiniMax-H3与ComfyUI的自动化工作流实践

本地一键生成短剧视频:基于MiniMax-H3与ComfyUI的自动化工作流实践

这次我们来看一个能让你在本地电脑上,一键生成短剧视频的项目。它叫 MiniMax-H3 ,结合了强大的多模态大模型能力和 ComfyUI 的可视化工作流,目标是实现从剧本到成片的“全自动”处理。你不用再手动找参考图、拆解分镜、逐帧调整&#xff0c…

2026/8/24 20:53:32
鸣潮wuwa-mod怎么装?5步用上15个免肝神器

鸣潮wuwa-mod怎么装?5步用上15个免肝神器

鸣潮wuwa-mod怎么装?5步用上15个免肝神器 【免费下载链接】wuwa-mod Wuthering Waves pak mods 项目地址: https://gitcode.com/GitHub_Trending/wu/wuwa-mod wuwa-mod 是给《鸣潮》做的一套 .pak 模组包,技能无冷却、无限体力、自动拾取这些功能…

2026/8/24 20:48:31