Как мне профилировать запросы Guzzle 6?

Я пытаюсь профилировать запросы к серверу API от клиента PHP с помощью Guzzle (v 6).

В гудл 5.3 есть такая complete а также before обработка событий.

class GuzzleProfiler implements SubscriberInterface
{
public function getEvents()
{
return [
'before'   => ['onBefore'],
'complete' => ['onComplete']
];
}

public function onBefore(BeforeEvent $event, $name)
{
start_profiling();
}

public function onComplete(CompleteEvent $event, $name)
{
end_profiling();
}
}

Но как мне это сделать в v6?

6

Решение

Просто нашел его с помощью Middleware. Вот код

class Profiler {

/**
* @return callable
*/
public static function profile() {
return function(callable $handler) {
return function(\Psr\Http\Message\RequestInterface $request, array $options) use ($handler) {
start_profiling();
return $handler($request, $options)->then(function(\Psr\Http\Message\ResponseInterface $response) use ($token) {
end_profiling();
return $response;
});
};
};
}
}

А затем прикрепите профилировщик так.

$stack = \GuzzleHttp\HandlerStack::create();
$stack->push(Profiler::profile());
$client = new \GuzzleHttp\Client([
'handler' => $stack
]);
2

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

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

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