Test Failed
Pull Request — master (#7)
by
unknown
05:41
created
src/Fields/LatLngBoundsFields.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -17,13 +17,13 @@
 block discarded – undo
17 17
 class LatLngBoundsFields
18 18
 {
19 19
 
20
-	/**
21
-	 * string : northeast
22
-	 */
23
-	const NORTHEAST = 'northeast';
20
+    /**
21
+     * string : northeast
22
+     */
23
+    const NORTHEAST = 'northeast';
24 24
 
25
-	/**
26
-	 * string : southwest
27
-	 */
28
-	const SOUTHWEST = 'southwest';
25
+    /**
26
+     * string : southwest
27
+     */
28
+    const SOUTHWEST = 'southwest';
29 29
 }
30 30
\ No newline at end of file
Please login to merge, or discard this patch.
src/Fields/LatLngFields.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -17,13 +17,13 @@
 block discarded – undo
17 17
 class LatLngFields
18 18
 {
19 19
 
20
-	/**
21
-	 * string - latitude
22
-	 */
23
-	const LAT = 'lat';
20
+    /**
21
+     * string - latitude
22
+     */
23
+    const LAT = 'lat';
24 24
 
25
-	/**
26
-	 * string - longitude
27
-	 */
28
-	const LNG = 'lng';
25
+    /**
26
+     * string - longitude
27
+     */
28
+    const LNG = 'lng';
29 29
 }
30 30
\ No newline at end of file
Please login to merge, or discard this patch.
src/Fields/PhotoFields.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -17,23 +17,23 @@
 block discarded – undo
17 17
 class PhotoFields
18 18
 {
19 19
 
20
-	/**
21
-	 * @var string
22
-	 */
23
-	const HEIGHT = "height";
20
+    /**
21
+     * @var string
22
+     */
23
+    const HEIGHT = "height";
24 24
 
25
-	/**
26
-	 * @var string
27
-	 */
28
-	const WIDTH = "width";
25
+    /**
26
+     * @var string
27
+     */
28
+    const WIDTH = "width";
29 29
 
30
-	/**
31
-	 * @var string
32
-	 */
33
-	const PHOTO_REFERENCE = "photo_reference";
30
+    /**
31
+     * @var string
32
+     */
33
+    const PHOTO_REFERENCE = "photo_reference";
34 34
 
35
-	/**
36
-	 * @var string
37
-	 */
38
-	const HTML_ATTRIBUTIONS = "html_attributions";
35
+    /**
36
+     * @var string
37
+     */
38
+    const HTML_ATTRIBUTIONS = "html_attributions";
39 39
 }
40 40
\ No newline at end of file
Please login to merge, or discard this patch.
src/Fields/GeometryFields.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -17,19 +17,19 @@
 block discarded – undo
17 17
 class GeometryFields
18 18
 {
19 19
 
20
-	/**
21
-	 * string: location
22
-	 */
23
-	const LOCATION = 'location';
20
+    /**
21
+     * string: location
22
+     */
23
+    const LOCATION = 'location';
24 24
 
25
-	/**
26
-	 * string: location_type
27
-	 */
28
-	const LOCATION_TYPE = 'location_type';
25
+    /**
26
+     * string: location_type
27
+     */
28
+    const LOCATION_TYPE = 'location_type';
29 29
 
30
-	/**
31
-	 * string: viewport
32
-	 */
33
-	const VIEWPORT = 'viewport';
30
+    /**
31
+     * string: viewport
32
+     */
33
+    const VIEWPORT = 'viewport';
34 34
 
35 35
 }
36 36
\ No newline at end of file
Please login to merge, or discard this patch.
src/Fields/AddressComponentFields.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -17,19 +17,19 @@
 block discarded – undo
17 17
 class AddressComponentFields
18 18
 {
19 19
 
20
-	/**
21
-	 * string: long_name
22
-	 */
23
-	const LONG_NAME = 'long_name';
20
+    /**
21
+     * string: long_name
22
+     */
23
+    const LONG_NAME = 'long_name';
24 24
 
25
-	/**
26
-	 * string: short_name
27
-	 */
28
-	const SHORT_NAME = 'short_name';
25
+    /**
26
+     * string: short_name
27
+     */
28
+    const SHORT_NAME = 'short_name';
29 29
 
30
-	/**
31
-	 * string: types
32
-	 */
33
-	const TYPES = 'types';
30
+    /**
31
+     * string: types
32
+     */
33
+    const TYPES = 'types';
34 34
 
35 35
 }
36 36
\ No newline at end of file
Please login to merge, or discard this patch.
src/GoogleMapsApi.php 1 patch
Indentation   +274 added lines, -274 removed lines patch added patch discarded remove patch
@@ -25,279 +25,279 @@
 block discarded – undo
25 25
 class GoogleMapsApi
26 26
 {
27 27
 
28
-	/**
29
-	 * @var GoogleMapsApi
30
-	 */
31
-	protected static $instance = null;
32
-
33
-	/**
34
-	 * @var GoogleMapsRequest
35
-	 */
36
-	protected $request = null;
37
-
38
-	/**
39
-	 * Google Maps Geocode Service API url
40
-	 * @var string
41
-	 */
42
-	private $api_url = "https://maps.googleapis.com/maps/api/";
43
-
44
-	/**
45
-	 * your own Google Maps API key
46
-	 * @var string
47
-	 * @see https://developers.google.com/maps/documentation/javascript/get-api-key
48
-	 */
49
-	private $key = '';
50
-
51
-	/**
52
-	 * Google Maps API sensor
53
-	 * @var string - true|false
54
-	 */
55
-	private $sensor = 'false';
56
-
57
-	/**
58
-	 * Google Maps API service name
59
-	 * @var string
60
-	 */
61
-	private $service_endpoint = '';
62
-
63
-	/**
64
-	 * @var string
65
-	 */
66
-	private $response = null;
67
-
68
-	/**
69
-	 * @var GoogleMapsClient
70
-	 */
71
-	private $client = null;
72
-
73
-	/**
74
-	 * @var string
75
-	 */
76
-	private $type = null;
77
-
78
-	/**
79
-	 * GoogleMapsApi constructor.
80
-	 *
81
-	 * @param array $config
82
-	 */
83
-	public function __construct(array $config = [])
84
-	{
85
-
86
-		// Set "API key"
87
-		$key = (empty($config[GoogleMapsApiConfigFields::KEY])) ? '' : $config[GoogleMapsApiConfigFields::KEY];
88
-		$this->setKey($key);
89
-
90
-		// Set "sensor"
91
-		$sensor = (empty($config[GoogleMapsApiConfigFields::SENSOR])) ? SensorValues::FALSE : $config[GoogleMapsApiConfigFields::SENSOR];
92
-		$this->setSensor($sensor);
93
-
94
-		// Set the endpoint
95
-		$service_endpoint = (empty($config[GoogleMapsApiConfigFields::SERVICE_ENDPOINT])) ? '' : $config[GoogleMapsApiConfigFields::SERVICE_ENDPOINT];
96
-		$this->setServiceEndpoint($service_endpoint);
97
-
98
-		// Set Client
99
-		$this->setClient();
100
-	}
101
-
102
-	/**
103
-	 * @return string
104
-	 */
105
-	public function getApiUrl(): string
106
-	{
107
-
108
-		return $this->api_url;
109
-	}
110
-
111
-	/**
112
-	 * Perform the Google Maps API call
113
-	 *
114
-	 * @param GoogleMapsRequest $request
115
-	 *
116
-	 * @return Http\GoogleMapsResponse|string
117
-	 */
118
-	public function get(GoogleMapsRequest $request)
119
-	{
120
-
121
-		$this->setRequest($request);
122
-
123
-		$url = $this->getUrl();
124
-
125
-		$query = $this->getQuery();
126
-
127
-		$this->response = $this->getClient()->get($url, $query);
128
-
129
-		return $this->response;
130
-	}
131
-
132
-	/**
133
-	 * @return string
134
-	 * @throws RequestException
135
-	 */
136
-	public function getUrl(): string
137
-	{
138
-
139
-		$url_chunks = [];
140
-		$service_endpoint = $this->getServiceEndpoint();
141
-		if (!$service_endpoint) {
142
-			throw new RequestException('Service name missing!');
143
-		}
144
-
145
-		$request_endpoint = $this->request->getEndpoint();
146
-		array_push($url_chunks, $this->api_url . $service_endpoint);
147
-
148
-		if($request_endpoint) {
149
-			array_push($url_chunks, $request_endpoint);
150
-		}
151
-
152
-		array_push($url_chunks, GoogleMapsResponseFormat::JSON);
153
-		return implode("/", $url_chunks);
154
-	}
155
-
156
-	/**
157
-	 * @return string
158
-	 */
159
-	public function getServiceEndpoint(): string
160
-	{
161
-
162
-		return $this->service_endpoint;
163
-	}
164
-
165
-	/**
166
-	 * @param string $service_endpoint
167
-	 *
168
-	 * @return GoogleMapsApi
169
-	 */
170
-	public function setServiceEndpoint(string $service_endpoint): GoogleMapsApi
171
-	{
172
-
173
-		$this->service_endpoint = $service_endpoint;
174
-
175
-		return $this;
176
-	}
177
-
178
-	/**
179
-	 * @return string
180
-	 */
181
-	public function getQuery(): string
182
-	{
183
-
184
-		$api_query = http_build_query([
185
-			GoogleMapsRequestFields::KEY    => $this->getKey(),
186
-			GoogleMapsRequestFields::SENSOR => $this->getSensor(),
187
-		]);
188
-
189
-		$request_query = $this->getRequest()->getQuery();
190
-
191
-		return implode('&', [
192
-			$api_query,
193
-			$request_query
194
-		]);
195
-	}
196
-
197
-	/**
198
-	 * @return string
199
-	 */
200
-	public function getKey(): string
201
-	{
202
-
203
-		return $this->key;
204
-	}
205
-
206
-	/**
207
-	 * @param string $key
208
-	 *
209
-	 * @return GoogleMapsApi
210
-	 */
211
-	public function setKey(string $key): GoogleMapsApi
212
-	{
213
-
214
-		$this->key = $key;
215
-
216
-		return $this;
217
-	}
218
-
219
-	/**
220
-	 * @return string
221
-	 */
222
-	public function getSensor(): string
223
-	{
224
-
225
-		return $this->sensor ? 'true' : 'false';
226
-	}
227
-
228
-	/**
229
-	 * Set sensor parameter
230
-	 *
231
-	 * @param bool|string $sensor
232
-	 *
233
-	 * @return GoogleMapsApi
234
-	 */
235
-	public function setSensor($sensor): GoogleMapsApi
236
-	{
237
-
238
-		if ($sensor !== SensorValues::FALSE) {
239
-			$sensor = SensorValues::TRUE;
240
-		}
241
-		$this->sensor = $sensor;
242
-
243
-		return $this;
244
-	}
245
-
246
-	/**
247
-	 * @return GoogleMapsRequest
248
-	 */
249
-	public function getRequest(): GoogleMapsRequest
250
-	{
251
-
252
-		return $this->request;
253
-	}
254
-
255
-	/**
256
-	 * @param GoogleMapsRequest $request
257
-	 *
258
-	 * @return GoogleMapsApi
259
-	 */
260
-	public function setRequest(GoogleMapsRequest $request)
261
-	{
262
-
263
-		$this->request = $request;
264
-
265
-		return $this;
266
-	}
267
-
268
-	/**
269
-	 * @return GoogleMapsClient
270
-	 */
271
-	public function getClient()
272
-	{
273
-
274
-		return $this->client;
275
-	}
276
-
277
-	/**
278
-	 * @param GoogleMapsClient|null $client
279
-	 *
280
-	 * @return GoogleMapsApi
281
-	 */
282
-	public function setClient(?GoogleMapsClient $client = null): GoogleMapsApi
283
-	{
284
-
285
-		$this->client = $client ?? new GoogleMapsClient();
286
-
287
-		return $this;
288
-	}
289
-
290
-	/**
291
-	 * @param string $type
292
-	 *
293
-	 * @return GoogleMapsApi
294
-	 */
295
-	protected function setType(string $type): GoogleMapsApi
296
-	{
297
-
298
-		$this->type = $type;
299
-
300
-		return $this;
301
-	}
28
+    /**
29
+     * @var GoogleMapsApi
30
+     */
31
+    protected static $instance = null;
32
+
33
+    /**
34
+     * @var GoogleMapsRequest
35
+     */
36
+    protected $request = null;
37
+
38
+    /**
39
+     * Google Maps Geocode Service API url
40
+     * @var string
41
+     */
42
+    private $api_url = "https://maps.googleapis.com/maps/api/";
43
+
44
+    /**
45
+     * your own Google Maps API key
46
+     * @var string
47
+     * @see https://developers.google.com/maps/documentation/javascript/get-api-key
48
+     */
49
+    private $key = '';
50
+
51
+    /**
52
+     * Google Maps API sensor
53
+     * @var string - true|false
54
+     */
55
+    private $sensor = 'false';
56
+
57
+    /**
58
+     * Google Maps API service name
59
+     * @var string
60
+     */
61
+    private $service_endpoint = '';
62
+
63
+    /**
64
+     * @var string
65
+     */
66
+    private $response = null;
67
+
68
+    /**
69
+     * @var GoogleMapsClient
70
+     */
71
+    private $client = null;
72
+
73
+    /**
74
+     * @var string
75
+     */
76
+    private $type = null;
77
+
78
+    /**
79
+     * GoogleMapsApi constructor.
80
+     *
81
+     * @param array $config
82
+     */
83
+    public function __construct(array $config = [])
84
+    {
85
+
86
+        // Set "API key"
87
+        $key = (empty($config[GoogleMapsApiConfigFields::KEY])) ? '' : $config[GoogleMapsApiConfigFields::KEY];
88
+        $this->setKey($key);
89
+
90
+        // Set "sensor"
91
+        $sensor = (empty($config[GoogleMapsApiConfigFields::SENSOR])) ? SensorValues::FALSE : $config[GoogleMapsApiConfigFields::SENSOR];
92
+        $this->setSensor($sensor);
93
+
94
+        // Set the endpoint
95
+        $service_endpoint = (empty($config[GoogleMapsApiConfigFields::SERVICE_ENDPOINT])) ? '' : $config[GoogleMapsApiConfigFields::SERVICE_ENDPOINT];
96
+        $this->setServiceEndpoint($service_endpoint);
97
+
98
+        // Set Client
99
+        $this->setClient();
100
+    }
101
+
102
+    /**
103
+     * @return string
104
+     */
105
+    public function getApiUrl(): string
106
+    {
107
+
108
+        return $this->api_url;
109
+    }
110
+
111
+    /**
112
+     * Perform the Google Maps API call
113
+     *
114
+     * @param GoogleMapsRequest $request
115
+     *
116
+     * @return Http\GoogleMapsResponse|string
117
+     */
118
+    public function get(GoogleMapsRequest $request)
119
+    {
120
+
121
+        $this->setRequest($request);
122
+
123
+        $url = $this->getUrl();
124
+
125
+        $query = $this->getQuery();
126
+
127
+        $this->response = $this->getClient()->get($url, $query);
128
+
129
+        return $this->response;
130
+    }
131
+
132
+    /**
133
+     * @return string
134
+     * @throws RequestException
135
+     */
136
+    public function getUrl(): string
137
+    {
138
+
139
+        $url_chunks = [];
140
+        $service_endpoint = $this->getServiceEndpoint();
141
+        if (!$service_endpoint) {
142
+            throw new RequestException('Service name missing!');
143
+        }
144
+
145
+        $request_endpoint = $this->request->getEndpoint();
146
+        array_push($url_chunks, $this->api_url . $service_endpoint);
147
+
148
+        if($request_endpoint) {
149
+            array_push($url_chunks, $request_endpoint);
150
+        }
151
+
152
+        array_push($url_chunks, GoogleMapsResponseFormat::JSON);
153
+        return implode("/", $url_chunks);
154
+    }
155
+
156
+    /**
157
+     * @return string
158
+     */
159
+    public function getServiceEndpoint(): string
160
+    {
161
+
162
+        return $this->service_endpoint;
163
+    }
164
+
165
+    /**
166
+     * @param string $service_endpoint
167
+     *
168
+     * @return GoogleMapsApi
169
+     */
170
+    public function setServiceEndpoint(string $service_endpoint): GoogleMapsApi
171
+    {
172
+
173
+        $this->service_endpoint = $service_endpoint;
174
+
175
+        return $this;
176
+    }
177
+
178
+    /**
179
+     * @return string
180
+     */
181
+    public function getQuery(): string
182
+    {
183
+
184
+        $api_query = http_build_query([
185
+            GoogleMapsRequestFields::KEY    => $this->getKey(),
186
+            GoogleMapsRequestFields::SENSOR => $this->getSensor(),
187
+        ]);
188
+
189
+        $request_query = $this->getRequest()->getQuery();
190
+
191
+        return implode('&', [
192
+            $api_query,
193
+            $request_query
194
+        ]);
195
+    }
196
+
197
+    /**
198
+     * @return string
199
+     */
200
+    public function getKey(): string
201
+    {
202
+
203
+        return $this->key;
204
+    }
205
+
206
+    /**
207
+     * @param string $key
208
+     *
209
+     * @return GoogleMapsApi
210
+     */
211
+    public function setKey(string $key): GoogleMapsApi
212
+    {
213
+
214
+        $this->key = $key;
215
+
216
+        return $this;
217
+    }
218
+
219
+    /**
220
+     * @return string
221
+     */
222
+    public function getSensor(): string
223
+    {
224
+
225
+        return $this->sensor ? 'true' : 'false';
226
+    }
227
+
228
+    /**
229
+     * Set sensor parameter
230
+     *
231
+     * @param bool|string $sensor
232
+     *
233
+     * @return GoogleMapsApi
234
+     */
235
+    public function setSensor($sensor): GoogleMapsApi
236
+    {
237
+
238
+        if ($sensor !== SensorValues::FALSE) {
239
+            $sensor = SensorValues::TRUE;
240
+        }
241
+        $this->sensor = $sensor;
242
+
243
+        return $this;
244
+    }
245
+
246
+    /**
247
+     * @return GoogleMapsRequest
248
+     */
249
+    public function getRequest(): GoogleMapsRequest
250
+    {
251
+
252
+        return $this->request;
253
+    }
254
+
255
+    /**
256
+     * @param GoogleMapsRequest $request
257
+     *
258
+     * @return GoogleMapsApi
259
+     */
260
+    public function setRequest(GoogleMapsRequest $request)
261
+    {
262
+
263
+        $this->request = $request;
264
+
265
+        return $this;
266
+    }
267
+
268
+    /**
269
+     * @return GoogleMapsClient
270
+     */
271
+    public function getClient()
272
+    {
273
+
274
+        return $this->client;
275
+    }
276
+
277
+    /**
278
+     * @param GoogleMapsClient|null $client
279
+     *
280
+     * @return GoogleMapsApi
281
+     */
282
+    public function setClient(?GoogleMapsClient $client = null): GoogleMapsApi
283
+    {
284
+
285
+        $this->client = $client ?? new GoogleMapsClient();
286
+
287
+        return $this;
288
+    }
289
+
290
+    /**
291
+     * @param string $type
292
+     *
293
+     * @return GoogleMapsApi
294
+     */
295
+    protected function setType(string $type): GoogleMapsApi
296
+    {
297
+
298
+        $this->type = $type;
299
+
300
+        return $this;
301
+    }
302 302
 
303 303
 }
Please login to merge, or discard this patch.
src/Abstracts/AbstractCollection.php 1 patch
Indentation   +222 added lines, -222 removed lines patch added patch discarded remove patch
@@ -17,227 +17,227 @@
 block discarded – undo
17 17
 abstract class AbstractCollection implements \Iterator, \Countable
18 18
 {
19 19
 
20
-	/**
21
-	 * @var array
22
-	 */
23
-	protected $items = [];
24
-
25
-	/**
26
-	 * @var int
27
-	 */
28
-	protected $index = 0;
29
-
30
-	/**
31
-	 * AbstractCollection constructor.
32
-	 *
33
-	 * @param null|array $items
34
-	 */
35
-	public function __construct(?array $items = [])
36
-	{
37
-
38
-		$this->setItems($items);
39
-	}
40
-
41
-	/**
42
-	 * @param array $items
43
-	 *
44
-	 * @return AbstractCollection
45
-	 */
46
-	protected function setItems(?array $items = [])
47
-	{
48
-
49
-		if (is_array($items) && count($items)) {
50
-			foreach ($items as $item) {
51
-				$this->addItem($item);
52
-			}
53
-		}
54
-
55
-		return $this;
56
-	}
57
-
58
-	/**
59
-	 * @param $item
60
-	 *
61
-	 * @return AbstractCollection
62
-	 */
63
-	public function addItem($item)
64
-	{
65
-
66
-		$item = $this->parseItem($item);
67
-		array_push($this->items, $item);
68
-
69
-		return $this;
70
-	}
71
-
72
-	/**
73
-	 * @param $item
74
-	 *
75
-	 * @return mixed
76
-	 */
77
-	protected function parseItem($item)
78
-	{
79
-
80
-		return $item;
81
-	}
82
-
83
-	/**
84
-	 * @return string
85
-	 */
86
-	public function toJson(): string
87
-	{
88
-
89
-		return json_encode($this->toArray());
90
-	}
91
-
92
-	/**
93
-	 * @return array
94
-	 */
95
-	public function toArray(): array
96
-	{
97
-
98
-		return $this->items;
99
-	}
100
-
101
-	/**
102
-	 * @return string
103
-	 */
104
-	public function __toString(): string
105
-	{
106
-
107
-		return implode(',', $this->toArray());
108
-	}
109
-
110
-	/**
111
-	 * Return the current position of the index
112
-	 *
113
-	 * @return int
114
-	 */
115
-	public function position(): int
116
-	{
117
-
118
-		return $this->index;
119
-	}
120
-
121
-	/**
122
-	 * Move index to first position and return current element
123
-	 *
124
-	 * @return mixed|null
125
-	 */
126
-	public function first()
127
-	{
128
-
129
-		return $this->get(0);
130
-	}
131
-
132
-	/**
133
-	 * @param $index
134
-	 *
135
-	 * @return mixed|null
136
-	 */
137
-	public function get(int $index)
138
-	{
139
-
140
-		return isset($this->items[$index]) ? $this->items[$index] : null;
141
-	}
142
-
143
-	/**
144
-	 * Move the index at the specified position
145
-	 *
146
-	 * @param int|null $index
147
-	 *
148
-	 * @return mixed|null
149
-	 */
150
-	public function seek(?int $index = 0)
151
-	{
152
-
153
-		$this->index = ($index < $this->count()) ? $index : $this->getLastIndex();
154
-
155
-		return $this->get(intval($this->index));
156
-	}
157
-
158
-	/**
159
-	 * @return int
160
-	 */
161
-	public function count(): int
162
-	{
163
-
164
-		return count($this->items);
165
-	}
166
-
167
-	/**
168
-	 * @return int
169
-	 */
170
-	public function getLastIndex(): int
171
-	{
172
-
173
-		$last_position = $this->count() - 1;
174
-
175
-		return ($last_position) < 0 ? 0 : $last_position;
176
-	}
177
-
178
-	/**
179
-	 * Move index at the end of collection and return current element
180
-	 *
181
-	 * @return mixed|null
182
-	 */
183
-	public function last()
184
-	{
185
-
186
-		return $this->get($this->getLastIndex());
187
-	}
188
-
189
-	/**
190
-	 *
191
-	 * @return mixed|null
192
-	 */
193
-	public function current()
194
-	{
195
-
196
-		return $this->get($this->index);
197
-	}
198
-
199
-	/**
200
-	 * Move index to next position and return current element
201
-	 *
202
-	 * @return mixed|null
203
-	 */
204
-	public function next()
205
-	{
206
-
207
-		++$this->index;
208
-	}
209
-
210
-	/**
211
-	 * Return current key/index
212
-	 *
213
-	 * @return mixed|null
214
-	 */
215
-	public function key()
216
-	{
217
-
218
-		return $this->index;
219
-	}
220
-
221
-	/**
222
-	 * Return current key/index
223
-	 *
224
-	 * @return mixed|null
225
-	 */
226
-	public function valid()
227
-	{
228
-
229
-		return !empty($this->current());
230
-	}
231
-
232
-	/**
233
-	 * Move index to first position and return current element
234
-	 *
235
-	 * @return mixed|null
236
-	 */
237
-	public function rewind()
238
-	{
239
-
240
-		return $this->index = 0;
241
-	}
20
+    /**
21
+     * @var array
22
+     */
23
+    protected $items = [];
24
+
25
+    /**
26
+     * @var int
27
+     */
28
+    protected $index = 0;
29
+
30
+    /**
31
+     * AbstractCollection constructor.
32
+     *
33
+     * @param null|array $items
34
+     */
35
+    public function __construct(?array $items = [])
36
+    {
37
+
38
+        $this->setItems($items);
39
+    }
40
+
41
+    /**
42
+     * @param array $items
43
+     *
44
+     * @return AbstractCollection
45
+     */
46
+    protected function setItems(?array $items = [])
47
+    {
48
+
49
+        if (is_array($items) && count($items)) {
50
+            foreach ($items as $item) {
51
+                $this->addItem($item);
52
+            }
53
+        }
54
+
55
+        return $this;
56
+    }
57
+
58
+    /**
59
+     * @param $item
60
+     *
61
+     * @return AbstractCollection
62
+     */
63
+    public function addItem($item)
64
+    {
65
+
66
+        $item = $this->parseItem($item);
67
+        array_push($this->items, $item);
68
+
69
+        return $this;
70
+    }
71
+
72
+    /**
73
+     * @param $item
74
+     *
75
+     * @return mixed
76
+     */
77
+    protected function parseItem($item)
78
+    {
79
+
80
+        return $item;
81
+    }
82
+
83
+    /**
84
+     * @return string
85
+     */
86
+    public function toJson(): string
87
+    {
88
+
89
+        return json_encode($this->toArray());
90
+    }
91
+
92
+    /**
93
+     * @return array
94
+     */
95
+    public function toArray(): array
96
+    {
97
+
98
+        return $this->items;
99
+    }
100
+
101
+    /**
102
+     * @return string
103
+     */
104
+    public function __toString(): string
105
+    {
106
+
107
+        return implode(',', $this->toArray());
108
+    }
109
+
110
+    /**
111
+     * Return the current position of the index
112
+     *
113
+     * @return int
114
+     */
115
+    public function position(): int
116
+    {
117
+
118
+        return $this->index;
119
+    }
120
+
121
+    /**
122
+     * Move index to first position and return current element
123
+     *
124
+     * @return mixed|null
125
+     */
126
+    public function first()
127
+    {
128
+
129
+        return $this->get(0);
130
+    }
131
+
132
+    /**
133
+     * @param $index
134
+     *
135
+     * @return mixed|null
136
+     */
137
+    public function get(int $index)
138
+    {
139
+
140
+        return isset($this->items[$index]) ? $this->items[$index] : null;
141
+    }
142
+
143
+    /**
144
+     * Move the index at the specified position
145
+     *
146
+     * @param int|null $index
147
+     *
148
+     * @return mixed|null
149
+     */
150
+    public function seek(?int $index = 0)
151
+    {
152
+
153
+        $this->index = ($index < $this->count()) ? $index : $this->getLastIndex();
154
+
155
+        return $this->get(intval($this->index));
156
+    }
157
+
158
+    /**
159
+     * @return int
160
+     */
161
+    public function count(): int
162
+    {
163
+
164
+        return count($this->items);
165
+    }
166
+
167
+    /**
168
+     * @return int
169
+     */
170
+    public function getLastIndex(): int
171
+    {
172
+
173
+        $last_position = $this->count() - 1;
174
+
175
+        return ($last_position) < 0 ? 0 : $last_position;
176
+    }
177
+
178
+    /**
179
+     * Move index at the end of collection and return current element
180
+     *
181
+     * @return mixed|null
182
+     */
183
+    public function last()
184
+    {
185
+
186
+        return $this->get($this->getLastIndex());
187
+    }
188
+
189
+    /**
190
+     *
191
+     * @return mixed|null
192
+     */
193
+    public function current()
194
+    {
195
+
196
+        return $this->get($this->index);
197
+    }
198
+
199
+    /**
200
+     * Move index to next position and return current element
201
+     *
202
+     * @return mixed|null
203
+     */
204
+    public function next()
205
+    {
206
+
207
+        ++$this->index;
208
+    }
209
+
210
+    /**
211
+     * Return current key/index
212
+     *
213
+     * @return mixed|null
214
+     */
215
+    public function key()
216
+    {
217
+
218
+        return $this->index;
219
+    }
220
+
221
+    /**
222
+     * Return current key/index
223
+     *
224
+     * @return mixed|null
225
+     */
226
+    public function valid()
227
+    {
228
+
229
+        return !empty($this->current());
230
+    }
231
+
232
+    /**
233
+     * Move index to first position and return current element
234
+     *
235
+     * @return mixed|null
236
+     */
237
+    public function rewind()
238
+    {
239
+
240
+        return $this->index = 0;
241
+    }
242 242
 
243 243
 }
244 244
\ No newline at end of file
Please login to merge, or discard this patch.
src/Enum/GoogleMapsResponseFormat.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -17,15 +17,15 @@
 block discarded – undo
17 17
 class GoogleMapsResponseFormat
18 18
 {
19 19
 
20
-	/**
21
-	 * string: json
22
-	 */
23
-	const JSON = 'json';
20
+    /**
21
+     * string: json
22
+     */
23
+    const JSON = 'json';
24 24
 
25
-	/**
26
-	 * string: xml
27
-	 * NOT supported in this version
28
-	 */
29
-	const XML = 'xml';
25
+    /**
26
+     * string: xml
27
+     * NOT supported in this version
28
+     */
29
+    const XML = 'xml';
30 30
 
31 31
 }
32 32
\ No newline at end of file
Please login to merge, or discard this patch.
src/Enum/GoogleMapsApiConfigFields.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -17,18 +17,18 @@
 block discarded – undo
17 17
 class GoogleMapsApiConfigFields
18 18
 {
19 19
 
20
-	/**
21
-	 * string: key
22
-	 */
23
-	const KEY = 'key';
20
+    /**
21
+     * string: key
22
+     */
23
+    const KEY = 'key';
24 24
 
25
-	/**
26
-	 * string: sensor
27
-	 */
28
-	const SENSOR = 'sensor';
25
+    /**
26
+     * string: sensor
27
+     */
28
+    const SENSOR = 'sensor';
29 29
 
30
-	/**
31
-	 * string: service_endpoint
32
-	 */
33
-	const SERVICE_ENDPOINT = 'service_endpoint';
30
+    /**
31
+     * string: service_endpoint
32
+     */
33
+    const SERVICE_ENDPOINT = 'service_endpoint';
34 34
 }
35 35
\ No newline at end of file
Please login to merge, or discard this patch.