Laravel 4动态路由 - Overkill?

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)

Sta*_*tan 5

如果您有大约5条路线,那么这样做没有多大意义,但是如果您有足够的路线将遵循这种模式,那就更有意义了.只需确保您测试代码,以便它不会在生产中中断.

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