8000 Allow passing reader class and arguments as array · laravel-shift/GeocoderLaravel@cd5cd92 · GitHub
[go: up one dir, main page]

Skip to content

Commit cd5cd92

Browse files
authored
Allow passing reader class and arguments as array
1 parent 67f027b commit cd5cd92

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/ProviderAndDumperAggregator.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,18 @@ protected function getAdapterClass(string $provider) : string
221221
return config('geocoder.adapter');
222222
}
223223

224+
protected function getReader()
225+
{
226+
if (is_array(config('geocoder.reader'))) {
227+
$reflection = new ReflectionClass(config('geocoder.reader.class'));
228+
$reader = $reflection->newInstanceArgs(config('geocoder.reader.arguments'));
229+
} else {
230+
$reader = config('geocoder.reader');
231+
}
232+
233+
return $reader;
234+
}
235+
224236
protected function getArguments(array $arguments, string $provider) : array
225237
{
226238
if ($provider === 'Geocoder\Provider\Chain\Chain') {
@@ -232,9 +244,11 @@ protected function getArguments(array $arguments, string $provider) : array
232244
$adapter = $this->getAdapterClass($provider);
233245

234246
if ($adapter) {
235-
$adapter = $this->requiresReader($provider)
236-
? new $adapter(config('geocoder.reader'))
237-
: new $adapter;
247+
if ($this->requiresReader($provider)) {
248+
$adapter = new $adapter($this->getReader());
249+
} else {
250+
$adapter = new $adapter;
251+
}
238252

239253
array_unshift($arguments, $adapter);
240254
}

0 commit comments

Comments
 (0)
0