Есть ли способ вызвать динамический объект внутри промежуточного ПО Slim? - PullRequest
1 голос
/ 13 июня 2019

У меня чистый источник 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));
    });
});
...