Silex将中间件设置为ControllerCollection

时间:2013-04-05 20:13:49

标签: middleware silex

我想做这样的事情:

$app->mount('dashboard', new Travel\Controllers\Dashboard())->before(function() use ($app) {
              //check if is logued...
            })

有可能吗?

谢谢!

1 个答案:

答案 0 :(得分:6)

你可以做到

$controllers = $app["controllers_factory"];
$controllers->before(function(Request $request){});
你在ControllerProviderInterface::connect方法中

如果你需要在$app定义php文件中定义的函数,你可以创建一个受保护的函数

$app['callback'] = $app->protect(function(){});

然后

$controllers->before($app["callback"]);