Skip to content

Commit

Permalink
Update reader configuration to support array notation, so that config…
Browse files Browse the repository at this point in the history
… can be cached.
  • Loading branch information
mikebronner committed Oct 17, 2019
1 parent f576885 commit 72e7b7f
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 5 deletions.
8 changes: 8 additions & 0 deletions config/geocoder.php
Expand Up @@ -96,6 +96,14 @@
|
| Default: null
|
| Example:
| 'reader' => [
| WebService::class => [
| env('MAXMIND_USER_ID'),
| env('MAXMIND_LICENSE_KEY')
| ],
| ],
|
*/
'reader' => null,

Expand Down
Empty file added phpmd.xml
Empty file.
10 changes: 6 additions & 4 deletions src/ProviderAndDumperAggregator.php
Expand Up @@ -223,11 +223,13 @@ protected function getAdapterClass(string $provider) : string

protected function getReader()
{
$reader = config('geocoder.reader');

if (is_array(config('geocoder.reader'))) {
$reflection = new ReflectionClass(config('geocoder.reader.class'));
$reader = $reflection->newInstanceArgs(config('geocoder.reader.arguments'));
} else {
$reader = config('geocoder.reader');
$readerClass = array_key_first(config('geocoder.reader'));
$readerArguments = config('geocoder.reader')[$readerClass];
$reflection = new ReflectionClass($readerClass);
$reader = $reflection->newInstanceArgs($readerArguments);
}

return $reader;
Expand Down
7 changes: 6 additions & 1 deletion tests/config/testConfig.php
Expand Up @@ -38,5 +38,10 @@
],
],
'adapter' => Client::class,
'reader' => new Reader(__DIR__ . '/../resources/assets/GeoLite2-City.mmdb'),
// 'reader' => new Reader(__DIR__ . '/../resources/assets/GeoLite2-City.mmdb'),
"reader" => [
Reader::class => [
__DIR__ . '/../resources/assets/GeoLite2-City.mmdb',
],
],
];

0 comments on commit 72e7b7f

Please sign in to comment.