geocoder-php / GeocoderLaravel

Geocoder service provider for Laravel
http://geocoder-php.org/GeocoderLaravel/
MIT License
701 stars 102 forks source link

Default package configuration overrides published configuration #150

Open elceka opened 5 years ago

elceka commented 5 years ago

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.

mikebronner commented 5 years ago

Thanks @elceka I'll look into this.

pxpm commented 5 years ago

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

Would you mind trying php artisan config:cache ?

BR

mikebronner commented 5 years ago

@elceka Also try config:clear.

pxpm commented 5 years ago

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