我有一个纯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));
});
});