Как регистрировать время отклика для всех запросов Guzzle

#symfony #guzzle

#symfony #guzzle

Вопрос:

Я использую Guzzle в качестве http-клиента в приложении Symfony. С помощью следующего кода я могу регистрировать все запросы и ответы. Есть ли способ регистрировать также время отклика?

Я попробовал on_stats, но его следует добавлять к каждому вызову клиента, и это не вариант.

 services:
  app.client.default:
    class: 'GuzzleHttpClient'
    lazy: true
    arguments:
      - handler: '@app.handler_stack.default'

  app.handler_stack.default:
    class: 'GuzzleHttpHandlerStack'
    factory: [ GuzzleHttpHandlerStack, create ]
    calls:
      - [ push, [ '@app.middleware.log_default', 'log_default' ] ]

  app.middleware.log_default:
    class: callback
    factory: [ GuzzleHttpMiddleware, log ]
    arguments:
      - '@logger'
      - '@app.log_formatter.default'

  app.log_formatter.default:
    class: 'GuzzleHttpMessageFormatter'
    arguments:
      - ">>>>>>>>n{request}n<<<<<<<<n{response}n--------n{error}"

  app.service:
    class: 'AppService'
    arguments:
      - '@app.client.default'
  
 use GuzzleHttpClient;

class Service {

    private $httpClient;

    public function __construct(Client $httpClient) {
       $this->httpClient = $httpClient;
    }

    public function apiRequest() {
        $response = $this->httpClient->get('https://www.google.com');
        // ...
    }
}
  

Комментарии:

1. Решает ли этот пакет вашу проблему github.com/shrikeh/guzzle-middleware-responsetimer ?

2. Может быть вариант, спасибо