Skip to content

Commit c4275e8

Browse files
committed
Merge pull request #96 from nicolassing/4.0
Upgrade to Geocoder V3
2 parents 5b93692 + 77ca5c2 commit c4275e8

31 files changed

+275
-343
lines changed

.travis.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
language: php
22

33
php:
4-
- 5.3
54
- 5.4
65
- 5.5
76

87
env:
9-
- SYMFONY_VERSION=2.1.*
108
- SYMFONY_VERSION=2.2.*
119
- SYMFONY_VERSION=2.3.*
1210
- SYMFONY_VERSION=2.4.*

BazingaGeocoderBundle.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@
77
*
88
* @license MIT License
99
*/
10-
1110
namespace Bazinga\Bundle\GeocoderBundle;
1211

1312
use Symfony\Component\DependencyInjection\ContainerBuilder;
1413
use Symfony\Component\HttpKernel\Bundle\Bundle;
15-
1614
use Bazinga\Bundle\GeocoderBundle\DependencyInjection\Compiler\AddProvidersPass;
1715
use Bazinga\Bundle\GeocoderBundle\DependencyInjection\Compiler\AddDumperPass;
1816
use Bazinga\Bundle\GeocoderBundle\DependencyInjection\Compiler\LoggablePass;

Command/GeocodeCommand.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*
88
* @license MIT License
99
*/
10-
1110
namespace Bazinga\Bundle\GeocoderBundle\Command;
1211

1312
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
@@ -22,7 +21,7 @@
2221
class GeocodeCommand extends ContainerAwareCommand
2322
{
2423
/**
25-
* {@inheritDoc}
24+
* {@inheritdoc}
2625
*/
2726
protected function configure()
2827
{
@@ -43,7 +42,7 @@ protected function configure()
4342
}
4443

4544
/**
46-
* {@inheritDoc}
45+
* {@inheritdoc}
4746
*/
4847
protected function execute(InputInterface $input, OutputInterface $output)
4948
{
@@ -54,8 +53,8 @@ protected function execute(InputInterface $input, OutputInterface $output)
5453
$geocoder->using($input->getOption('provider'));
5554
}
5655

57-
$result = $geocoder->geocode($input->getArgument('address'));
58-
$data = $result->toArray();
56+
$results = $geocoder->geocode($input->getArgument('address'));
57+
$data = $results->first()->toArray();
5958

6059
$max = 0;
6160

DataCollector/GeocoderDataCollector.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*
88
* @license MIT License
99
*/
10-
1110
namespace Bazinga\Bundle\GeocoderBundle\DataCollector;
1211

1312
use Bazinga\Bundle\GeocoderBundle\Logger\GeocoderLogger;
@@ -26,7 +25,6 @@ class GeocoderDataCollector extends DataCollector
2625
protected $logger;
2726

2827
/**
29-
*
3028
* @param GeocoderLogger $logger
3129
*/
3230
public function __construct(GeocoderLogger $logger)
@@ -57,7 +55,7 @@ public function getRequests()
5755
/**
5856
* Returns the number of collected requests.
5957
*
60-
* @return integer
58+
* @return int
6159
*/
6260
public function getRequestsCount()
6361
{

DependencyInjection/BazingaGeocoderExtension.php

Lines changed: 26 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*
88
* @license MIT License
99
*/
10-
1110
namespace Bazinga\Bundle\GeocoderBundle\DependencyInjection;
1211

1312
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
@@ -19,7 +18,7 @@
1918
use Symfony\Component\Config\Definition\Processor;
2019

2120
/**
22-
* William Durand <[email protected]>
21+
* William Durand <[email protected]>.
2322
*/
2423
class BazingaGeocoderExtension extends Extension
2524
{
@@ -29,9 +28,9 @@ public function load(array $configs, ContainerBuilder $container)
2928
{
3029
$this->container = $container;
3130

32-
$processor = new Processor();
33-
$configuration = new Configuration();
34-
$config = $processor->processConfiguration($configuration, $configs);
31+
$processor = new Processor();
32+
$configuration = new Configuration();
33+
$config = $processor->processConfiguration($configuration, $configs);
3534

3635
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
3736
$loader->load('services.xml');
@@ -52,9 +51,7 @@ public function load(array $configs, ContainerBuilder $container)
5251
$container->removeDefinition('bazinga_geocoder.event_listener.fake_request');
5352
}
5453

55-
if (isset($config['adapter']['class']) && !empty($config['adapter']['class'])) {
56-
$container->setParameter('bazinga_geocoder.geocoder.adapter.class', $config['adapter']['class']);
57-
}
54+
$container->setAlias('bazinga_geocoder.geocoder.adapter', $config['adapter']);
5855

5956
if (isset($config['providers']['free_geo_ip'])) {
6057
$this->addProvider('free_geo_ip');
@@ -77,7 +74,7 @@ public function load(array $configs, ContainerBuilder $container)
7774
$ipInfoDbParams = $config['providers']['ip_info_db'];
7875

7976
$this->addProvider('ip_info_db', array(
80-
$ipInfoDbParams['api_key']
77+
$ipInfoDbParams['api_key'],
8178
));
8279
}
8380

@@ -108,7 +105,7 @@ public function load(array $configs, ContainerBuilder $container)
108105
$openstreetMapsParams = $config['providers']['openstreetmap'];
109106

110107
$this->addProvider('openstreetmap', array(
111-
$openstreetMapsParams['locale']
108+
$openstreetMapsParams['locale'],
112109
));
113110
}
114111

@@ -120,48 +117,24 @@ public function load(array $configs, ContainerBuilder $container)
120117
$mapQuestParams = $config['providers']['mapquest'];
121118

122119
$this->addProvider('mapquest', array(
123-
$mapQuestParams['api_key']
124-
));
125-
}
126-
127-
if (isset($config['providers']['oiorest'])) {
128-
$this->addProvider('oiorest');
129-
}
130-
131-
if (isset($config['providers']['geocoder_ca'])) {
132-
$this->addProvider('geocoder_ca');
133-
}
134-
135-
if (isset($config['providers']['geocoder_us'])) {
136-
$this->addProvider('geocoder_us');
137-
}
138-
139-
if (isset($config['providers']['ign_openls'])) {
140-
$ignOpenlsParams = $config['providers']['ign_openls'];
141-
142-
$this->addProvider('ign_openls', array(
143-
$ignOpenlsParams['api_key']
120+
$mapQuestParams['api_key'],
144121
));
145122
}
146123

147-
if (isset($config['providers']['data_science_toolkit'])) {
148-
$this->addProvider('data_science_toolkit');
149-
}
150-
151124
if (isset($config['providers']['yandex'])) {
152125
$yandexParams = $config['providers']['yandex'];
153126

154127
$this->addProvider('yandex', array(
155128
$yandexParams['locale'],
156-
$yandexParams['toponym']
129+
$yandexParams['toponym'],
157130
));
158131
}
159132

160133
if (isset($config['providers']['geo_ips'])) {
161134
$geoIpsParams = $config['providers']['geo_ips'];
162135

163136
$this->addProvider('geo_ips', array(
164-
$geoIpsParams['api_key']
137+
$geoIpsParams['api_key'],
165138
));
166139
}
167140

@@ -173,7 +146,7 @@ public function load(array $configs, ContainerBuilder $container)
173146
$maxmindParams = $config['providers']['maxmind'];
174147

175148
$this->addProvider('maxmind', array(
176-
$maxmindParams['api_key']
149+
$maxmindParams['api_key'],
177150
));
178151
}
179152

@@ -195,9 +168,19 @@ public function load(array $configs, ContainerBuilder $container)
195168
$container->setDefinition('bazinga_geocoder.provider.maxmind_binary', $provider);
196169
}
197170

171+
if (isset($config['providers']['opencage'])) {
172+
$openCageParams = $config['providers']['opencage'];
173+
174+
$this->addProvider('opencage', array(
175+
$openCageParams['api_key'],
176+
$openCageParams['use_ssl'],
177+
$openCageParams['locale'],
178+
));
179+
}
180+
198181
if (isset($config['providers']['cache'])) {
199-
$params = $config['providers']['cache'];
200-
$cache = new Reference($params['adapter']);
182+
$params = $config['providers']['cache'];
183+
$cache = new Reference($params['adapter']);
201184
$fallback = new Reference('bazinga_geocoder.provider.'.$params['provider']);
202185

203186
$provider = new Definition(
@@ -230,11 +213,11 @@ public function load(array $configs, ContainerBuilder $container)
230213
if (isset($config['providers']['chain']['providers'])) {
231214
foreach ($config['providers']['chain']['providers'] as $name) {
232215
if ($this->container->hasDefinition('bazinga_geocoder.provider.'.$name)) {
233-
$chainProvider->addMethodCall('addProvider', array(
234-
$this->container->getDefinition('bazinga_geocoder.provider.'.$name)
216+
$chainProvider->addMethodCall('add', array(
217+
$this->container->getDefinition('bazinga_geocoder.provider.'.$name),
235218
));
236219
} else {
237-
$chainProvider->addMethodCall('addProvider', array(new Reference($name)));
220+
$chainProvider->addMethodCall('add', array(new Reference($name)));
238221
}
239222
}
240223
}

DependencyInjection/Compiler/AddDumperPass.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*
88
* @license MIT License
99
*/
10-
1110
namespace Bazinga\Bundle\GeocoderBundle\DependencyInjection\Compiler;
1211

1312
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
@@ -19,7 +18,7 @@
1918
class AddDumperPass implements CompilerPassInterface
2019
{
2120
/**
22-
* {@inheritDoc}
21+
* {@inheritdoc}
2322
*/
2423
public function process(ContainerBuilder $container)
2524
{

DependencyInjection/Compiler/AddProvidersPass.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*
88
* @license MIT License
99
*/
10-
1110
namespace Bazinga\Bundle\GeocoderBundle\DependencyInjection\Compiler;
1211

1312
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
@@ -36,13 +35,13 @@ public function process(ContainerBuilder $container)
3635
return;
3736
}
3837

39-
$array = array();
38+
$providers = array();
4039
foreach ($container->findTaggedServiceIds('bazinga_geocoder.provider') as $providerId => $attributes) {
41-
$array[] = new Reference($providerId);
40+
$providers[] = new Reference($providerId);
4241
}
4342

44-
$geocoderDefinition =$container->getDefinition('bazinga_geocoder.geocoder');
45-
$geocoderDefinition->addMethodCall('registerProviders', array($array));
43+
$geocoderDefinition = $container->getDefinition('bazinga_geocoder.geocoder');
44+
$geocoderDefinition->addMethodCall('registerProviders', array($providers));
4645

4746
if ($container->hasParameter('bazinga_geocoder.default_provider')) {
4847
$geocoderDefinition->addMethodCall(

DependencyInjection/Compiler/LoggablePass.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*
88
* @license MIT License
99
*/
10-
1110
namespace Bazinga\Bundle\GeocoderBundle\DependencyInjection\Compiler;
1211

1312
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
@@ -20,7 +19,7 @@
2019
class LoggablePass implements CompilerPassInterface
2120
{
2221
/**
23-
* {@inheritDoc}
22+
* {@inheritdoc}
2423
*/
2524
public function process(ContainerBuilder $container)
2625
{

DependencyInjection/Configuration.php

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*
88
* @license MIT License
99
*/
10-
1110
namespace Bazinga\Bundle\GeocoderBundle\DependencyInjection;
1211

1312
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
@@ -47,11 +46,7 @@ public function getConfigTreeBuilder()
4746
->scalarNode('priority')->defaultValue(0)->end()
4847
->end()
4948
->end()
50-
->arrayNode('adapter')
51-
->children()
52-
->scalarNode('class')->defaultNull()->end()
53-
->end()
54-
->end()
49+
->scalarNode('adapter')->defaultValue('bazinga_geocoder.geocoder.default_adapter')->end()
5550
->arrayNode('providers')
5651
->children()
5752
->arrayNode('bing_maps')
@@ -123,17 +118,13 @@ public function getConfigTreeBuilder()
123118
->end()
124119
->end()
125120
->end()
126-
->arrayNode('oiorest')->end()
127-
->arrayNode('geocoder_ca')->end()
128-
->arrayNode('geocoder_us')->end()
129121
->arrayNode('ign_openls')
130122
->children()
131123
->scalarNode('api_key')
132124
->isRequired()->cannotBeEmpty()
133125
->end()
134126
->end()
135127
->end()
136-
->arrayNode('data_science_toolkit')->end()
137128
->arrayNode('yandex')
138129
->children()
139130
->scalarNode('locale')->defaultNull()->end()
@@ -163,6 +154,13 @@ public function getConfigTreeBuilder()
163154
->end()
164155
->end()
165156
->end()
157+
->arrayNode('opencage')
158+
->children()
159+
->scalarNode('locale')->defaultNull()->end()
160+
->booleanNode('use_ssl')->defaultFalse()->end()
161+
->scalarNode('api_key')->isRequired()->cannotBeEmpty()->end()
162+
->end()
163+
->end()
166164
->arrayNode('chain')
167165
->fixXmlConfig('provider')
168166
->children()

0 commit comments

Comments
 (0)