У меня чистый источник php, затем я интегрирую Slim 3 внутри источника.
В index.php для инициализации приложения Slim мне потребовался весь класс, который я уже определил, и я также вызываю некоторые функции-члены некоторого объекта внутри index.php. Но когда я захожу в промежуточное программное обеспечение, чтобы проверить некоторую требуемую информацию о запросе, включающем файл маршрута, это вызывает проблему, из-за которой я не могу вызвать ни одного члена функции, я думаю, что это произошло из-за использования () в промежуточном программном обеспечении функции.
Так есть ли способ передать все объекты, которые я создал из классов, в промежуточное ПО, тогда маршрут может использовать () его?
Вот мой код промежуточного программного обеспечения:
$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));
});
});