【发布时间】:2016-02-10 18:43:25
【问题描述】:
重组我的 silex1.2 应用程序后,我现在遇到了:
异常“RuntimeException”,消息“访问的请求服务” 超出请求范围。尝试将该调用移动到之前的处理程序或 控制器。'在 ../vendor/silex/silex/src/Silex/Application.php:150
我以前是这样设置应用程序的配置的:
$app = new Silex\Application();
$app->register(new ServiceControllerServiceProvider());
$app->register(new ConfigServiceProvider($configFile));
$fileFinder = new \Symfony\Component\Finder\Finder();
foreach ($fileFinder->in($configPath . 'country') as $file) {
/* @var SplFileInfo $file */
$app->register(new ConfigServiceProvider($file->getRealPath()));
}
我现在想通过注入从用户请求中获得的特定值来替换 foreach 循环。所以我想访问$request->query->get('country');但我不能,因为 app['request'] 在那个时候超出了范围。
我看不懂错误信息,如:
- 请求对象何时以及为何超出 silex 的范围?
- 我应该如何将调用移到处理程序和控制器之前,这是我设置应用程序时要做的第一件事?
基本上,我想尽早访问请求数据以获得一个值。为了相应地引导应用程序,我怎样才能做到这一点?
【问题讨论】: