1717 */
1818class 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