Skip to content

Commit 21768be

Browse files
committed
Updating for Laravel 5.3
1 parent 9069849 commit 21768be

File tree

3 files changed

+61
-59
lines changed

3 files changed

+61
-59
lines changed

composer.json

+39-33
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,50 @@
11
{
2-
"name" : "toin0u/geocoder-laravel",
3-
"description" : "Geocoder Service provider for Laravel 4",
4-
"keywords" : ["laravel", "geocoder", "geocoding"],
5-
"homepage" : "http://geocoder-php.org/",
6-
"license" : "MIT",
7-
8-
"authors" : [{
9-
"name" : "Antoine Corcy",
10-
"email" : "contact@sbin.dk",
11-
"homepage" : "http://sbin.dk",
12-
"role" : "Developer"
13-
}],
14-
15-
"require" : {
16-
"php" : ">=5.4",
17-
"illuminate/support" : "~5.0",
18-
"willdurand/geocoder" : "~2.4"
2+
"name": "toin0u/geocoder-laravel",
3+
"description": "Geocoder Service Provider for Laravel",
4+
"keywords": [
5+
"laravel",
6+
"geocoder",
7+
"geocoding"
8+
],
9+
"homepage": "http://geocoder-php.org/",
10+
"license": "MIT",
11+
"authors": [
12+
{
13+
"name": "Antoine Corcy",
14+
"email": "contact@sbin.dk",
15+
"homepage": "http://sbin.dk",
16+
"role": "Developer"
17+
},
18+
{
19+
"name": "Mike Bronner",
20+
"email": "hello@genealabs.com",
21+
"homepage": "https://genealabs.com",
22+
"role": "developer"
23+
}
24+
],
25+
"require": {
26+
"php": ">=5.4",
27+
"illuminate/support": "~5.0",
28+
"willdurand/geocoder": "~3.3"
1929
},
20-
21-
"require-dev" : {
22-
"orchestra/testbench" : "~3.0",
23-
"satooshi/php-coveralls" : "~0.6",
24-
"phpunit/phpunit" : "~4.5"
30+
"require-dev": {
31+
"orchestra/testbench": "~3.0",
32+
"satooshi/php-coveralls": "~0.6",
33+
"phpunit/phpunit": "~4.5"
2534
},
26-
27-
"autoload" : {
28-
"psr-4" : {
29-
"Toin0u\\Geocoder\\" : "src/"
35+
"autoload": {
36+
"psr-4": {
37+
"Toin0u\\Geocoder\\": "src/"
3038
}
3139
},
32-
33-
"autoload-dev" : {
40+
"autoload-dev": {
3441
"psr-4": {
35-
"Toin0u\\Tests\\Geocoder\\" : "tests/"
42+
"Toin0u\\Tests\\Geocoder\\": "tests/"
3643
}
3744
},
38-
39-
"extra" : {
40-
"branch-alias" : {
41-
"dev-master" : "0.6-dev"
45+
"extra": {
46+
"branch-alias": {
47+
"dev-master": "0.7-dev"
4248
}
4349
}
4450
}

config/geocoder.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
// Providers get called in the chain order given here.
1414
// The first one to return a result will be used.
1515
'providers' => [
16-
'Geocoder\Provider\GoogleMapsProvider' => ['fr-FR', 'Île-de-France', true],
17-
'Geocoder\Provider\FreeGeoIpProvider' => null,
16+
'Geocoder\Provider\GoogleMaps' => ['fr-FR', 'France', true],
17+
'Geocoder\Provider\FreeGeoIp' => null,
1818
],
19-
'adapter' => 'Geocoder\HttpAdapter\CurlHttpAdapter',
19+
'adapter' => 'Ivory\HttpAdapter\Guzzle6HttpAdapter',
2020
];

src/GeocoderServiceProvider.php

+19-23
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111

1212
namespace Toin0u\Geocoder;
1313

14-
use Geocoder\Geocoder;
15-
use Geocoder\Provider\ChainProvider;
14+
use Geocoder\ProviderAggregator;
15+
use Geocoder\Provider\Chain;
16+
use ReflectionClass;
1617

1718
/**
1819
* Geocoder service provider
@@ -30,7 +31,7 @@ public function boot()
3031
{
3132
$source = realpath(__DIR__ . '/../config/geocoder.php');
3233

33-
$this->publishes([$source => config_path('geocoder.php')]);
34+
$this->publishes([$source => config_path('geocoder.php')], 'config');
3435

3536
$this->mergeConfigFrom($source, 'geocoder');
3637
}
@@ -42,35 +43,30 @@ public function boot()
4243
*/
4344
public function register()
4445
{
45-
$this->app->singleton('geocoder.adapter', function($app) {
46-
$adapter = $app['config']->get('geocoder.adapter');
46+
$this->app->singleton('geocoder.adapter', function ($app) {
47+
$adapter = config('geocoder.adapter');
4748

4849
return new $adapter;
4950
});
5051

51-
$this->app->singleton('geocoder.chain', function($app) {
52-
$providers = [];
52+
$this->app->singleton('geocoder.chain', function ($app) {
53+
$providers = collect(config('geocoder.providers'))
54+
->map(function ($arguments, $provider) {
55+
$reflection = new ReflectionClass($provider);
5356

54-
foreach($app['config']->get('geocoder.providers') as $provider => $arguments) {
55-
if (0 !== count($arguments)) {
56-
$providers[] = call_user_func_array(
57-
function ($arg1 = null, $arg2 = null, $arg3 = null, $arg4 = null) use ($app, $provider) {
58-
return new $provider($app['geocoder.adapter'], $arg1, $arg2, $arg3, $arg4);
59-
},
60-
$arguments
61-
);
57+
if (is_array($arguments)) {
58+
array_unshift($arguments, $this->app['geocoder.adapter']);
59+
return $reflection->newInstanceArgs($arguments);
60+
}
6261

63-
continue;
64-
}
62+
return $reflection->newInstance($this->app['geocoder.adapter']);
63+
});
6564

66-
$providers[] = new $provider($app['geocoder.adapter']);
67-
}
68-
69-
return new ChainProvider($providers);
65+
return new Chain($providers->toArray());
7066
});
7167

72-
$this->app['geocoder'] = $this->app->share(function($app) {
73-
$geocoder = new Geocoder;
68+
$this->app->singleton('geocoder', function ($app) {
69+
$geocoder = new ProviderAggregator();
7470
$geocoder->registerProvider($app['geocoder.chain']);
7571

7672
return $geocoder;

0 commit comments

Comments
 (0)