构建一个小的Silex API,其中一个要求是允许返回多种语言,例如JSON / XML,例如:如果我收到这样的网址:
index.php?language=json
我应该收到JSON回复,如果收到的话:
index.php?language=xml
我应该收到XML响应。
所以我认为合乎逻辑的事情就是在Silex的before
调用上检查这个参数,如下所示:
$planets->before(
function (Request $request) use ($app){
$app['request_lang'] = 'json';
if($request->get('lang') != null){
$app['request_lang'] = $request->get('language');
}
return $app;
}
);
我在我的引导程序中有这个代码,但由于某种原因,'request_lang`永远不会在$ app上设置...
我使用控制器提供程序接口将我的控制器分组在不同的类中,在我的引导程序中,我只是按如下方式安装组:
$app->mount("/planets", new ControllerProvider\Planet());
我在任何坐骑之前调用上述before
动作。我也尝试在每个组中放置before
动作,但仍然没有运气。
有人能告诉我为什么没有设置['request_lang']
吗?
由于