Skip to content

Commit 5008644

Browse files
committed
handle multiple results
1 parent 89ae585 commit 5008644

File tree

2 files changed

+32
-29
lines changed

2 files changed

+32
-29
lines changed

Geocoder/LoggableGeocoder.php

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,17 @@ public function geocode($value)
3939
}
4040

4141
$startTime = microtime(true);
42-
$result = parent::geocode($value);
42+
$results = parent::geocode($value);
4343
$duration = (microtime(true) - $startTime) * 1000;
4444

4545
$this->logger->logRequest(
4646
sprintf("[Geocoding] %s", $value),
4747
$duration,
4848
$this->getProviderClass(),
49-
json_encode($result->toArray())
49+
$results
5050
);
5151

52-
return $result;
52+
return $results;
5353
}
5454

5555
/**
@@ -62,19 +62,14 @@ public function reverse($latitude, $longitude)
6262
}
6363

6464
$startTime = microtime(true);
65-
$result = parent::reverse($latitude, $longitude);
65+
$results = parent::reverse($latitude, $longitude);
6666
$duration = (microtime(true) - $startTime) * 1000;
6767

6868
$value = sprintf("[Reverse geocoding] latitude: %s, longitude: %s", $latitude, $longitude);
6969

70-
$this->logger->logRequest(
71-
$value,
72-
$duration,
73-
$this->getProviderClass(),
74-
json_encode($result->toArray())
75-
);
70+
$this->logger->logRequest($value, $duration, $this->getProviderClass(), $results);
7671

77-
return $result;
72+
return $results;
7873
}
7974

8075
protected function getProviderClass()

Logger/GeocoderLogger.php

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,17 @@
1717
*/
1818
class GeocoderLogger
1919
{
20+
/**
21+
* @var LoggerInterface
22+
*/
2023
protected $logger;
2124

25+
/**
26+
* @var array
27+
*/
2228
protected $requests = array();
2329

2430
/**
25-
*
2631
* @param LoggerInterface $logger
2732
*/
2833
public function __construct(LoggerInterface $logger = null)
@@ -31,28 +36,31 @@ public function __construct(LoggerInterface $logger = null)
3136
}
3237

3338
/**
34-
*
35-
* @param string $value value to geocode
36-
* @param float $duration
37-
* @param string $providerClass Geocoder provider class
38-
* @param mixed $result
39+
* @param string $value value to geocode
40+
* @param float $duration geocoding duration
41+
* @param string $providerClass Geocoder provider class name
42+
* @param \SplObjectStorage|Geocoded $results
3943
*/
40-
public function logRequest($value, $duration, $providerClass, $result)
44+
public function logRequest($value, $duration, $providerClass, $results)
4145
{
4246
if (null !== $this->logger) {
43-
$this->requests[] = array(
44-
'value' => $value,
45-
'duration' => $duration,
46-
'providerClass' => $providerClass,
47-
'result' => $result
48-
);
47+
$this->logger->info(sprintf("%s %0.2f ms (%s)", $value, $duration, $providerClass));
48+
}
4949

50-
$this->logger->info(sprintf("%s %0.2f ms (%s)",
51-
$value,
52-
$duration,
53-
$providerClass
54-
));
50+
if ($results instanceof \SplObjectStorage) {
51+
foreach ($results as $result) {
52+
$data[] = $result->toArray();
53+
}
54+
} else {
55+
$data = $results->toArray();
5556
}
57+
58+
$this->requests[] = array(
59+
'value' => $value,
60+
'duration' => $duration,
61+
'providerClass' => $providerClass,
62+
'result' => json_encode($data),
63+
);
5664
}
5765

5866
/**

0 commit comments

Comments
 (0)