Laravel 自动路由发现
发布时间 作者 Paul Redmond
Laravel 路由发现 是 Spatie 开发的一个包,用于自动发现 Laravel 应用程序中的路由。您可以配置路由可以“发现”的位置,无论是在路由文件中还是通过配置。
// in a routes fileuse Spatie\RouteDiscovery\Discovery\Discover; Discover::controllers()->in(app_path('Http/Controllers'));
定义控制器路径后,此包将根据该路径中的控制器和方法名称生成路由 URL。例如,如果您需要一个新闻控制器,您可能定义以下内容
namespace App\Http\Controllers; class NewsController{ // The route would be `/news` public function index() { /* ... */ } // The route would be `/news/my-method` public function myMethod() { /* ... */ } // The route would be `/news/my-other-method` public function myOtherMethod() { /* ... */ }}
虽然以上示例演示了 GET
请求,但该包根据方法名称提供了 POST、PUT 和 PATCH 请求的约定。此包还支持使用命名空间来确定路由的嵌套控制器。
使用此包,您仍然可以像 Laravel 文档中概述的那样传统地注册路由。换句话说,并非所有路由都需要是可发现的路由。
此包还可以将路由映射到 Blade 模板,允许您动态地将视图文件映射到路由。以下是一个来自 文档 的示例
// config/route-discovery'discover_views_in_directory' => [ 'docs' => resource_path('views/docs'),], /*in `views/docs` /docs --> index.blade.php/docs/page-a --> pageA.blade.php/docs/page-b --> pageB.blade.php/docs/nested --> nested/index.blade.php*/
此包还包含各种 PHP 属性来定制路由、HTTP 方法、路由名称等。查看 将控制器映射到路由 文档以获取有关可用 PHP 属性的更多详细信息。
您可以在 GitHub 上了解有关此包的更多信息、获取完整的安装说明以及查看 源代码。请务必查看 官方文档 以了解有关入门的信息。