diff --git a/config/geocoder.php b/config/geocoder.php index 7049d01..03b8b44 100644 --- a/config/geocoder.php +++ b/config/geocoder.php @@ -96,6 +96,14 @@ | | Default: null | + | Example: + | 'reader' => [ + | WebService::class => [ + | env('MAXMIND_USER_ID'), + | env('MAXMIND_LICENSE_KEY') + | ], + | ], + | */ 'reader' => null, diff --git a/phpmd.xml b/phpmd.xml new file mode 100644 index 0000000..e69de29 diff --git a/src/ProviderAndDumperAggregator.php b/src/ProviderAndDumperAggregator.php index 62fe04a..9a17334 100644 --- a/src/ProviderAndDumperAggregator.php +++ b/src/ProviderAndDumperAggregator.php @@ -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; diff --git a/tests/config/testConfig.php b/tests/config/testConfig.php index 1b752de..9ee6af6 100644 --- a/tests/config/testConfig.php +++ b/tests/config/testConfig.php @@ -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', + ], + ], ];