Журнал Все API запрос и ответ + Slim Framework - PullRequest
0 голосов
/ 17 мая 2019

Я хочу регистрировать каждый запрос и ответ для API.

$app->hook('slim.after.router', function () use ($app) { 
    $request = $app->request; 
    $response = $app->response;
    echo "<pre>";print_r($response);die;

});

Здесь я получаю правильный запрос, но когда я пытался распечатать ответ, я получаю

Slim\Http\Response Object
(
    [status:protected] => 200
    [headers] => Slim\Http\Headers Object
        (
            [data:protected] => Array
                (
                    [Content-Type] => application/json
                )

        )

    [cookies] => Slim\Http\Cookies Object
        (
            [defaults:protected] => Array
                (
                    [value] => 
                    [domain] => 
                    [path] => 
                    [expires] => 
                    [secure] => 
                    [httponly] => 
                )

            [data:protected] => Array
                (
                )

        )

    [body:protected] => 
    [length:protected] => 0
)

IЯ могу дать правильный ответ в ответ API, но не получая, как в журналах.

Любая помощь будет оценена.Спасибо!

1 Ответ

0 голосов
/ 17 мая 2019

использование slim.after вместо slim.after.router решило проблему.

Как и в документации

slim.after.router : - эта ловушка вызывается после отправки маршрутизатора, до отправки ответа клиенту и после выключения буферизации вывода.Этот хук вызывается один раз в течение жизненного цикла приложения Slim.

slim.after : - Этот хук вызывается после отключения буферизации вывода и после отправки ответа клиенту.Этот хук вызывается один раз в течение жизненного цикла приложения Slim.

$app->hook('slim.after', function () use ($app) { 
    $request = $app->request; 
    $response = $app->response;
    echo "<pre>";print_r($request);die;
});

, который выводит: -

Slim\Http\Response Object
(
    [status:protected] => 200
    [headers] => Slim\Http\Headers Object
        (
            [data:protected] => Array
                (
                    [Content-Type] => application/json
                )

        )

    [cookies] => Slim\Http\Cookies Object
        (
            [defaults:protected] => Array
                (
                    [value] => 
                    [domain] => 
                    [path] => 
                    [expires] => 
                    [secure] => 
                    [httponly] => 
                )

            [data:protected] => Array
                (
                )

        )

    [body:protected] => {"data":{"Authorization":"786876866","user":{"id":"1","user_role":"1"}},"status":200,"success":true,"message":"user authentication successful"}
    [length:protected] => 577
)

Конечно, вы также получите объект ответа:)

...