我找到了调试路线的代码。
$route = Route::get('default');
echo Kohana_Debug::dump($route->matches('en/start/index'));
当我在引导程序中使用代码时,会返回错误:
ErrorException [ Recoverable Error ]: 传递给 Kohana_Route::matches() 的参数 1 必须是 Request 的实例,给定字符串,
如何在 Kohana 3.3 中调试路由?
根据您的评论,我认为您的路线是错误的。应该看起来更像这样:
Route::set('default', '(<lang>(/<controller>(/<action>(/<id>))))
注意括号在哪里<lang>。
要测试 URL 是否与 Route 匹配,您不能将字符串传递给该$my_route->match()方法。尽管在docs中确实说您可以,但该方法仅接受 Request 对象。这将使您的代码看起来更像:
$route = Route::get('default');
$request = Request::factory('en/start/index');
echo Debug::dump($route->matches($request));
以上应该FALSE在失败时输出或array在成功时输出所有路由参数。
如果您需要更强大的工具,您可能需要查看bluehawk 的 devtools 模块,尽管它似乎在 Kohana 3.1.x 上停止了开发,并且不太可能在新版本中正常工作,但我个人没有使用它。
编辑
我已经努力并更新了Devtools 模块。随意从我的存储库中获取它,您将能够测试您的路线。