From 530a1854c0b6b8f8e5f5249ced95cdc0e9d29b7b Mon Sep 17 00:00:00 2001 From: Anam Hossain Date: Wed, 28 Mar 2018 11:43:42 +1100 Subject: [PATCH 1/2] Resolve depency via Class name --- src/Providers/GeocoderService.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Providers/GeocoderService.php b/src/Providers/GeocoderService.php index 39938a4..e06055f 100644 --- a/src/Providers/GeocoderService.php +++ b/src/Providers/GeocoderService.php @@ -11,9 +11,7 @@ use Geocoder\Laravel\Facades\Geocoder; use Geocoder\Laravel\ProviderAndDumperAggregator; -use Illuminate\Support\Collection; use Illuminate\Support\ServiceProvider; -use ReflectionClass; class GeocoderService extends ServiceProvider { @@ -27,10 +25,17 @@ public function boot() "config" ); $this->mergeConfigFrom($configPath, "geocoder"); - $this->app->singleton("geocoder", function () { - return (new ProviderAndDumperAggregator) - ->registerProvidersFromConfig(collect(config("geocoder.providers"))); + + $providerAndDumperAggregator = (new ProviderAndDumperAggregator) + ->registerProvidersFromConfig(collect(config("geocoder.providers"))); + + $this->app->singleton("geocoder", function ($app) use ($providerAndDumperAggregator) { + return $providerAndDumperAggregator; }); + + // Resolve dependency via class name + // i.e app(ProviderAndDumperAggregator::class) or _construct(ProviderAndDumperAggregator $geocoder) + $this->app->instance(ProviderAndDumperAggregator::class, $providerAndDumperAggregator); } public function register() @@ -38,12 +43,12 @@ public function register() $this->app->alias("Geocoder", Geocoder::class); } - public function provides() : array + public function provides(): array { return ["geocoder"]; } - protected function configPath(string $path = "") : string + protected function configPath(string $path = ""): string { if (function_exists("config_path")) { return config_path($path); From acaccc0825c20a0b1585635748c58383f8c97952 Mon Sep 17 00:00:00 2001 From: Anam Hossain Date: Wed, 28 Mar 2018 11:51:51 +1100 Subject: [PATCH 2/2] Add controller example --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index f4e1de4..02a4267 100644 --- a/README.md +++ b/README.md @@ -234,6 +234,19 @@ app('geocoder')->reverse(43.882587,-103.454067)->get(); app('geocoder')->geocode('Los Angeles, CA')->dump('kml'); ``` +#### Using Controller +```php +use Geocoder\Laravel\ProviderAndDumperAggregator as Geocoder; + +class GeocoderController extends Controller +{ + public function getGeocode(Geocoder $geocoder) + { + $geocoder->geocode('Los Angeles, CA')->get() + } +} +``` + ## Upgrading Anytime you upgrade this package, please remember to clear your cache, to prevent incompatible cached responses when breaking changes are introduced (this should hopefully only be necessary in major versions): ```sh