Syn*_*kSA 2 php laravel laravel-4
我们正在建立一个我们可以解决的Laravel 4基础项目.我想创建一个默认的路由规则,允许开发人员轻松敲打新页面,而不必担心向控制器添加路由,但要使其可以为任何更复杂的路由/控制器添加其他路由.
我创建了以下路由规则,但我想知道它是否过度杀伤.我自己对Laravel很新,所以我不确定我是否会以错误的方式解决这个问题,所以我想我会发布它并得到一些反馈.
Route::any('{controller}/{action?}/{args?}', function($controller, $action = 'index', $args = '')
{
$cont = "Controller";
$notFound = "NotFound";
$params = explode("/", $args);
$app = app();
if (!class_exists($controller.$cont) || !function_exists($contName.$cont.".".$action)) {
$controller = $notFound;
$action = 'index';
}
$controller = $app->make($controller.$cont);
return $controller->callAction($app, $app['router'], $action, $params);
})
->where(array(
'controller' => '[^/]+',
'action' => '[^/]+',
'args' => '[^?$]+'
));
Run Code Online (Sandbox Code Playgroud)
如果您有大约5条路线,那么这样做没有多大意义,但是如果您有足够的路线将遵循这种模式,那就更有意义了.只需确保您测试代码,以便它不会在生产中中断.
顺便说一下,.NET MVC映射的默认路由与你的工作方式非常相似,这使得它非常方便,因为你不必手动映射每个路由.所以我想这完全正常.