Добавьте ценность в промежуточном ПО SlimV3

Я новичок в SLimV3, и я хочу использовать промежуточное ПО для создания вывода Json.

Мой код:
контроллер:

public function __invoke(Request $request, Response $response, $args) {
....
$out['message'] = "ok";
$out['code'] = 0;
$response->withJson($out);
}

мой маршрут:

  $app->get('/foo', App\Action\Foo::class)->add(new foo\Middleware());

мое промежуточное ПО

class Middleware{

public function __invoke(RequestInterface $request, ResponseInterface $response,$next) {
$started = microtime(true);
$response = $response->withHeader('Content-type', 'application/json');
$response = $next($request, $response);
$json = json_decode( (string) $response->getBody(),true);
$json['execution_time'] = microtime(true) - $started;
$newResponse = $response->withJson($json);
return $newResponse;
}
}

мой вывод в порядке,

{
"message": "ok",
"code": 0,
"execution_time": 0.44862484931946
}

но я не люблю создавать Json в моем контроллере, Json Decode в промежуточном программном обеспечении и снова $newResponse = $response->withJson($json);, Я хотел бы прочитать Ответ и создать ответ в промежуточном программном обеспечении, или прочитать код состояния и создать пользовательский Ответ.
Могу ли я это сделать ?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]