无论如何,在Slim中间件中是否可以调用动态对象?

时间:2019-06-13 16:19:10

标签: php slim-3

我有一个纯PHP源,然后在源中集成了Slim 3。

在要安装Slim应用程序的index.php中,我需要已定义的所有类,并且我还需要在index.php中调用某些对象的某些成员函数。但是,当我进入中间件检查一些要求包含路由文件的要求信息时,这会导致我无法调用任何函数成员的问题,我认为我是因为函数中间件上的use()。

那么总有什么方法可以将我从类创建的所有对象传递给中间件,然后路由可以使用()它?

这是我的中间件代码:

$app->add(function (Request $request, Response $response, $next) use ($global_api_key, $app) {
    $api_key = $request->getParam('apikey');
    $token = $request->getParam('token');
    if ($api_key == $global_api_key) {
        if ($token != ''){
          //do something...
        }
        else{
           require PATH_APP . '/init.php';
        }
        $response = $next($request, $response);
        return $response->withHeader('Content-Type', 'application/json');
    } else {
        $status = 400;
        $message = 'Bad request!';
        return $response->withStatus($status)->withHeader('Content-Type', 'application/json')->write(json_encode($message));
    }
});

这是我的init.php文件:

$app->group('/login', function (){
    $this->post('/device_login', function ($request, $response){
       //Call to an object from included class to get some $data
       ....
       $response->withStatus(200)->write(json_encode($data));
    });
});

0 个答案:

没有答案