89e01d8f171845586eb09f7164ea77adea682a80
8 use http\Client\Request
;
10 use Psr\Log\LoggerInterface
;
12 class ClientObserver
implements SplObserver
16 function __construct(LoggerInterface
$logger) {
17 $this->logger
= $logger;
20 function update(SplSubject
$client, Request
$request = null, $progress = null) {
21 switch ($progress->info
) {
23 if (!$progress->started
) {
24 $message = sprintf("API-Shot: start %s %s", $request->getRequestMethod(), $request->getRequestUrl());
25 $this->logger
->debug($message);
29 $response = $client->getResponse($request);
30 $message = sprintf("API-Shot: finished [%d] %s %s", $response->getResponseCode(), $request->getRequestMethod(), $request->getRequestUrl());
31 if ($response->getResponseCode() >= 400 ||
$response->getTransferInfo("error")) {
32 $this->logger
->error($message, (array) $response->getTransferInfo());
34 $this->logger
->info($message);