Laravel 4动态路由-超杀


Laravel 4 Dynamic routing - Overkill?

我们正在建立一个可以使用的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' => '[^?$]+'
));

如果你有大约5条路线,那么这样做没有多大意义,但如果你有很多路线遵循这种模式,那就很有意义了。只要确保你测试你的代码,这样它就不会在生产中崩溃。

顺便说一句,.NET MVC映射默认路由的方式与您的方式非常相似,这使得它非常方便,因为您不必手动映射每个路由。所以我想这是完全正常的。