geocoder-php/GeocoderLaravel

Default package configuration overrides published configuration

elceka opened this issue · 4 comments

General Information

GeocoderLaravel Version: 4.1.1
Laravel Version: 5.7
PHP Version: 7.2.14
Operating System and Version: Docker under OSX

Issue Description

Customized providers inside customized published config file /config/geocoder.php has been overrided by package default configuration.

Steps to Replicate

Run command inside project directory:
composer require geocoder-php/nominatim-provider
php artisan vendor:publish --provider="Geocoder\Laravel\Providers\GeocoderService" --tag="config"

Change value of 'providers' key in the configuration file /config/geocoder.php:

'providers' => [
    Nominatim::class => [
        'https://nominatim.openstreetmap.org',
        'my-user-agent',
    ],
],

Test code:

$providers = \Geocoder\Laravel\Facades\Geocoder::getProviders();
dd($providers);

Result:

Collection {#375 ▼
  #items: array:1 [▼
    "chain" => Chain {#377 ▼
      -providers: array:2 [▼
        "Geocoder\Provider\GoogleMaps\GoogleMaps" => GoogleMaps {#383 ▶}
        "Geocoder\Provider\GeoPlugin\GeoPlugin" => GeoPlugin {#388 ▶}
      ]
      #logger: null
    }
  ]
}

As we can see, we have two providers from package default configuration without our configured Nominatim provider.

Stack Trace

Without any exception.

Thanks @elceka I'll look into this.

pxpm commented

As you are changing config values, is it possible you are still using cached values?

Would you mind trying php artisan config:cache ?

BR

@elceka Also try config:clear.

pxpm commented

@mikebronner config:cache will do both clear and re-caching :)