Laravel 中的自动路由发现
Laravel Route Discovery 是 Spatie 的一个包,用于在 Laravel 应用程序中自动发现路由。你可以在路由文件中或通过配置配置路由可以「发现」的位置:
// 在路由文件中
use Spatie\RouteDiscovery\Discovery\Discover;
Discover::controllers()->in(app_path('Http/Controllers'));
定义控制器路径后,此包将根据该路径中的控制器和方法名称生成路由 URL。例如,如果你想要一个新闻控制器,可以定义以下内容:
namespace App\Http\Controllers;
class NewsController
{
// 路由地址是 `/news`
public function index() { /* ... */ }
// 路由地址是 `/news/my-method`
public function myMethod() { /* ... */ }
// 路由地址是 `/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 上的源代码。请务必查看 官方文档,了解有关入门的详细信息。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
想问问这个包的使用场景是?
你又想回归thinkphp吗
TP:老子玩剩下的你们又捡起来了!
不想写路由的可以试试这个方法
如果有一个控制器的名称是ApiTestController 这个控制器里面有一个方法 version(){}
那么调用的路由是 xxx.com/api/test/version
但是这个可能会对性能有那么一点点点点点影响,不过相比带来的便捷,我选择后者
开历史的倒车 :joy: