【发布时间】:2022-11-12 12:48:05
【问题描述】:
它变得很好奇,laravel 如何解析路由并了解哪个路由与正确的 url 匹配?例如 url 由适当的路由处理?
www.ru/post/100/comments/500
Route::get('/posts/{post}/comments/{comment}', [NameConroller::class, 'show']);
乍一看,
- 看来我们应该用 / 分割传入的路由(例如explode())。
- 然后找到第一部分以 /post 开头的所有路由
- 从上一段中找到的路由中,我们应该理解(如何?) /{post} 匹配任何数字。等等。
也许有人深入研究了源代码或者只是知道它是如何工作的?知道会很有趣)
【问题讨论】:
-
如果您知道从哪里开始,使用像 PHPStorm 这样的 IDE 可以让您轻松找到函数的定义。从Routing/Route::compileRoute开始,你发现它是一个Symfony routing function,最后是the symfony RouteCompiler的
compile函数。那应该让你开始。