使用Request作为Silex中另一个服务的依赖项

时间:2016-01-12 09:55:28

标签: dependency-injection silex service-provider

我的网络服务应检查每个请求附带的特定GET参数。根据此参数,我想定义一个服务。 缺少此参数是特殊情况,应予以处理。

这样的事情:

    $app['myService'] = function (Application $app) {
        $param = $app['request']->query->get('param');

        if (empty($param)) {
            throw new \RuntimeException('Param must be defined');
        }

        return new MyService($param);
    }
  1. 服务依赖于请求是否合适?
  2. 可以检查param值并在注册时抛出异常吗?我在before()中间件中使用它,但它是否足以确保服务实例化总能正常工作?
  3. 我想为此创建一个服务提供商,但无法在那里获得请求服务,它会触发异常"在请求范围之外的访问请求服务。尝试将该调用移至before handler或controller"。看起来它建议将它移到before()之前。你会建议什么?

0 个答案:

没有答案