Repolode
spatie

spatie/laravel-route-attributes

一个 Laravel 扩展包,通过在控制器上添加 PHP 8 属性即可注册路由。

Star
883
Fork
85
未关闭 Issue
0
最近提交
前天

这是什么?

laravel-route-attributes 让 Laravel 开发者把路由声明直接写在对应的控制器代码旁边。在控制器方法上添加 #[Get('my-route')] 这样的属性后,扩展包会自动注册等价的 Route::get 调用,无需再单独维护路由文件。

它会扫描配置的控制器目录,支持所有常见 HTTP 动词,并提供用于资源控制器的 Resource 属性以及 ApiResource 变体。属性还覆盖路由名称、中间件、前缀、域名、分组、参数约束(如 WhereUuid、WhereNumber)、默认参数值、作用域绑定以及软删除模型绑定。

目录配置可以为每个目录单独指定中间件、前缀和命名空间,适合模块化应用。通过文件匹配和排除模式,可以限定扫描范围,例如在同时存放测试的目录中只扫描控制器文件。

核心功能

  • 01在控制器类和方法上使用 PHP 8 属性注册路由。
  • 02支持所有标准 HTTP 动词,以及多动词和任意动词路由。
  • 03Resource 和 ApiResource 属性可生成资源路由,并支持 only、except 和命名选项。
  • 04提供中间件、前缀、域名、路由名称和参数约束等属性。
  • 05目录配置可按目录指定中间件、前缀和命名空间。
  • 06支持文件匹配与排除模式,控制扫描的文件范围。

适用场景

  • 在 Laravel 应用中让路由与控制器代码保持在一起。
  • 为控制器分散在不同模块目录的 Laravel 项目组织路由。
  • 在控制器上直接声明资源路由,构建 REST API。

快速上手

  1. 1

    使用 Composer 安装该包

    composer require spatie/laravel-route-attributes
  2. 2

    发布配置文件

    php artisan vendor:publish --provider="Spatie\RouteAttributes\RouteAttributesServiceProvider" --tag="config"
  3. 3

    在控制器类和方法上添加路由属性

收录于专题

标签

常见问题

laravel-route-attributes 是什么?
一个 Laravel 扩展包,通过在控制器上添加 PHP 8 属性即可注册路由。 laravel-route-attributes 让 Laravel 开发者把路由声明直接写在对应的控制器代码旁边。在控制器方法上添加 #[Get('my-route')] 这样的属性后,扩展包会自动注册等价的 Route::get 调用,无需再单独维护路由文件。
laravel-route-attributes 可以免费使用吗?用的什么许可证?
laravel-route-attributes 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
laravel-route-attributes 还在维护吗?
活跃维护中。laravel-route-attributes 最近一次提交是在 2026年11月5日。
laravel-route-attributes 适合用来做什么?
在 Laravel 应用中让路由与控制器代码保持在一起。 为控制器分散在不同模块目录的 Laravel 项目组织路由。 在控制器上直接声明资源路由,构建 REST API。
laravel-route-attributes 怎么安装和运行?
使用 Composer 安装该包: composer require spatie/laravel-route-attributes 发布配置文件: php artisan vendor:publish --provider="Spatie\RouteAttributes\RouteAttributesServiceProvider" --tag="config" 在控制器类和方法上添加路由属性
在哪里获取 laravel-route-attributes?
源代码和安装说明在 GitHub 上:https://github.com/spatie/laravel-route-attributes

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目