Skip to content

Commit fb87655

Browse files
authoredAug 2, 2022
Merge pull request #331 from norkunas/psr-client
Allow PSR-18 client
2 parents d0b509e + ce46499 commit fb87655

37 files changed

+282
-184
lines changed
 

‎CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
The changelog describes what have been "Added", "Changed", "Removed" or "Fixed" between versions.
44

5+
## Version 5.19.0
6+
7+
### Changed
8+
9+
- Allow PSR-18 client
10+
- Updated Geocoder Provider dependency requirements to the latest versions
11+
512
## Version 5.18.0
613

714
### Added

‎ProviderFactory/AbstractFactory.php

+4-7
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
namespace Bazinga\GeocoderBundle\ProviderFactory;
1414

1515
use Geocoder\Provider\Provider;
16-
use Http\Client\HttpClient;
16+
use Psr\Http\Client\ClientInterface;
1717
use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
1818
use Symfony\Component\OptionsResolver\OptionsResolver;
1919

@@ -30,18 +30,15 @@ abstract class AbstractFactory implements ProviderFactoryInterface
3030
*/
3131
protected static $dependencies = [];
3232

33-
/**
34-
* @var HttpClient|null
35-
*/
36-
protected $httpClient;
33+
protected ?ClientInterface $httpClient;
3734

38-
public function __construct(HttpClient $httpClient = null)
35+
public function __construct(?ClientInterface $httpClient = null)
3936
{
4037
$this->httpClient = $httpClient;
4138
}
4239

4340
/**
44-
* @phpstan-param array<mixed, mixed> $config
41+
* @param array<mixed, mixed> $config
4542
*/
4643
abstract protected function getProvider(array $config): Provider;
4744

‎ProviderFactory/AlgoliaFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\AlgoliaPlaces\AlgoliaPlaces;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class AlgoliaFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class AlgoliaFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: ?string, app_id: ?string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: ?string, app_id: ?string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -42,7 +42,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4242
'app_id' => null,
4343
]);
4444

45-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
45+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4646
$resolver->setAllowedTypes('api_key', ['string', 'null']);
4747
$resolver->setAllowedTypes('app_id', ['string', 'null']);
4848
}

‎ProviderFactory/ArcGISOnlineFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\ArcGISOnline\ArcGISOnline;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class ArcGISOnlineFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class ArcGISOnlineFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{source_country: ?string, httplug_client: ?HttpClient} $config
28+
* @param array{source_country: ?string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -41,7 +41,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4141
'source_country' => null,
4242
]);
4343

44-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
44+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4545
$resolver->setAllowedTypes('source_country', ['string', 'null']);
4646
}
4747
}

‎ProviderFactory/BingMapsFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\BingMaps\BingMaps;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class BingMapsFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class BingMapsFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -41,7 +41,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4141
]);
4242

4343
$resolver->setRequired('api_key');
44-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
44+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4545
$resolver->setAllowedTypes('api_key', ['string']);
4646
}
4747
}

‎ProviderFactory/ChainFactory.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ final class ChainFactory extends AbstractFactory implements LoggerAwareInterface
3030
];
3131

3232
/**
33-
* @phpstan-param array{services: Provider[]} $config
33+
* @param array{services: Provider[]} $config
3434
*/
3535
protected function getProvider(array $config): Provider
3636
{

‎ProviderFactory/FreeGeoIpFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\FreeGeoIp\FreeGeoIp;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class FreeGeoIpFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class FreeGeoIpFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{base_url: string, httplug_client: ?HttpClient} $config
28+
* @param array{base_url: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -41,7 +41,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4141
'base_url' => 'https://freegeoip.app/json/%s',
4242
]);
4343

44-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
44+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4545
$resolver->setAllowedTypes('base_url', ['string']);
4646
}
4747
}

‎ProviderFactory/GeoIP2Factory.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ final class GeoIP2Factory extends AbstractFactory
2727
];
2828

2929
/**
30-
* @phpstan-param array{provider: string, provider_service: ?ProviderInterface, model: string, user_id: string|int|null, license_key: string|null, locales: list<string>, webservice_options: array<mixed, mixed>, database_filename: ?string} $config
30+
* @param array{provider: string, provider_service: ?ProviderInterface, model: string, user_id: string|int|null, license_key: string|null, locales: list<string>, webservice_options: array<mixed, mixed>, database_filename: ?string} $config
3131
*/
3232
protected function getProvider(array $config): Provider
3333
{
@@ -61,7 +61,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
6161

6262
$resolver->setRequired('provider');
6363
$resolver->setAllowedTypes('provider', ['string']);
64-
$resolver->setAllowedTypes('provider_service', ['object', 'null']);
64+
$resolver->setAllowedTypes('provider_service', [ProviderInterface::class, 'null']);
6565
$resolver->setAllowedTypes('model', ['string']);
6666
$resolver->setAllowedTypes('user_id', ['string', 'int', 'null']);
6767
$resolver->setAllowedTypes('license_key', ['string', 'null']);

‎ProviderFactory/GeoIPsFactory.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,14 @@ final class GeoIPsFactory extends AbstractFactory
2828
];
2929

3030
/**
31-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
31+
* @param array{api_key: string, httplug_client: ?HttpClient} $config
3232
*/
3333
protected function getProvider(array $config): Provider
3434
{
3535
@trigger_error('Bazinga\GeocoderBundle\ProviderFactory\GeoIPsFactory is deprecated since 5.6, to be removed in 6.0. See https://github.com/geocoder-php/Geocoder/issues/965', E_USER_DEPRECATED);
3636

3737
$httplug = $config['httplug_client'] ?: $this->httpClient ?? HttpClientDiscovery::find();
38+
assert($httplug instanceof HttpClient);
3839

3940
return new GeoIPs($httplug, $config['api_key']);
4041
}
@@ -46,7 +47,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4647
]);
4748

4849
$resolver->setRequired('api_key');
49-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
50+
$resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
5051
$resolver->setAllowedTypes('api_key', ['string']);
5152
}
5253
}

‎ProviderFactory/GeoPluginFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\GeoPlugin\GeoPlugin;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class GeoPluginFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class GeoPluginFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{httplug_client: ?HttpClient} $config
28+
* @param array{httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -40,6 +40,6 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4040
'httplug_client' => null,
4141
]);
4242

43-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
43+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4444
}
4545
}

‎ProviderFactory/GeoipFactory.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ final class GeoipFactory extends AbstractFactory
2323
];
2424

2525
/**
26-
* @phpstan-param array{} $config
26+
* @param array{} $config
2727
*/
2828
protected function getProvider(array $config): Provider
2929
{

‎ProviderFactory/GeonamesFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\Geonames\Geonames;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class GeonamesFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class GeonamesFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{username: string, httplug_client: ?HttpClient} $config
28+
* @param array{username: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -41,7 +41,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4141
]);
4242

4343
$resolver->setRequired('username');
44-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
44+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4545
$resolver->setAllowedTypes('username', ['string']);
4646
}
4747
}

‎ProviderFactory/GoogleMapsFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\GoogleMaps\GoogleMaps;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class GoogleMapsFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class GoogleMapsFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: ?string, region: ?string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: ?string, region: ?string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -42,7 +42,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4242
'api_key' => null,
4343
]);
4444

45-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
45+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4646
$resolver->setAllowedTypes('region', ['string', 'null']);
4747
$resolver->setAllowedTypes('api_key', ['string', 'null']);
4848
}

‎ProviderFactory/GoogleMapsPlacesFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\GoogleMapsPlaces\GoogleMapsPlaces;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class GoogleMapsPlacesFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class GoogleMapsPlacesFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -40,7 +40,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4040
'httplug_client' => null,
4141
]);
4242

43-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
43+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4444
$resolver->setRequired(['api_key']);
4545
$resolver->setAllowedTypes('api_key', ['string']);
4646
}

‎ProviderFactory/HereFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\Here\Here;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class HereFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class HereFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{app_key: ?string, app_id: ?string, app_code: ?string, use_cit: bool, httplug_client: ?HttpClient} $config
28+
* @param array{app_key: ?string, app_id: ?string, app_code: ?string, use_cit: bool, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -56,7 +56,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
5656
'app_code' => null,
5757
]);
5858

59-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
59+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
6060
$resolver->setAllowedTypes('app_key', ['string', 'null']);
6161
$resolver->setAllowedTypes('app_id', ['string', 'null']);
6262
$resolver->setAllowedTypes('app_code', ['string', 'null']);

‎ProviderFactory/HostIpFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\HostIp\HostIp;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class HostIpFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class HostIpFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{httplug_client: ?HttpClient} $config
28+
* @param array{httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -40,6 +40,6 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4040
'httplug_client' => null,
4141
]);
4242

43-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
43+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4444
}
4545
}

‎ProviderFactory/IpInfoDbFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\IpInfoDb\IpInfoDb;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class IpInfoDbFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class IpInfoDbFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, precision: string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, precision: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -42,7 +42,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4242
]);
4343

4444
$resolver->setRequired('api_key');
45-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
45+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4646
$resolver->setAllowedTypes('api_key', ['string']);
4747
$resolver->setAllowedTypes('precision', ['string']);
4848
}

‎ProviderFactory/IpInfoFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\IpInfo\IpInfo;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class IpInfoFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class IpInfoFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{httplug_client: ?HttpClient} $config
28+
* @param array{httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -40,6 +40,6 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4040
'httplug_client' => null,
4141
]);
4242

43-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
43+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4444
}
4545
}

‎ProviderFactory/IpstackFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\Ipstack\Ipstack;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class IpstackFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class IpstackFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -41,7 +41,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4141
]);
4242

4343
$resolver->setRequired('api_key');
44-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
44+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4545
$resolver->setAllowedTypes('api_key', ['string']);
4646
}
4747
}

‎ProviderFactory/LocationIQFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
use Geocoder\Provider\LocationIQ\LocationIQ;
1414
use Geocoder\Provider\Provider;
15-
use Http\Client\HttpClient;
1615
use Http\Discovery\HttpClientDiscovery;
16+
use Psr\Http\Client\ClientInterface;
1717
use Symfony\Component\OptionsResolver\OptionsResolver;
1818

1919
final class LocationIQFactory extends AbstractFactory
@@ -23,7 +23,7 @@ final class LocationIQFactory extends AbstractFactory
2323
];
2424

2525
/**
26-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
26+
* @param array{api_key: string, httplug_client: ?ClientInterface} $config
2727
*/
2828
protected function getProvider(array $config): Provider
2929
{
@@ -38,7 +38,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
3838
'httplug_client' => null,
3939
]);
4040

41-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
41+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4242
$resolver->setRequired(['api_key']);
4343
$resolver->setAllowedTypes('api_key', ['string']);
4444
}

‎ProviderFactory/MapQuestFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\MapQuest\MapQuest;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class MapQuestFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class MapQuestFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, licensed: bool, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, licensed: bool, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -42,7 +42,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4242
]);
4343

4444
$resolver->setRequired('api_key');
45-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
45+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4646
$resolver->setAllowedTypes('api_key', ['string']);
4747
$resolver->setAllowedTypes('licensed', ['boolean']);
4848
}

‎ProviderFactory/MapboxFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
use Geocoder\Provider\Mapbox\Mapbox;
1414
use Geocoder\Provider\Provider;
15-
use Http\Client\HttpClient;
1615
use Http\Discovery\HttpClientDiscovery;
16+
use Psr\Http\Client\ClientInterface;
1717
use Symfony\Component\OptionsResolver\OptionsResolver;
1818

1919
final class MapboxFactory extends AbstractFactory
@@ -23,7 +23,7 @@ final class MapboxFactory extends AbstractFactory
2323
];
2424

2525
/**
26-
* @phpstan-param array{api_key: string, country: ?string, mode: string, httplug_client: ?HttpClient} $config
26+
* @param array{api_key: string, country: ?string, mode: string, httplug_client: ?ClientInterface} $config
2727
*/
2828
protected function getProvider(array $config): Provider
2929
{
@@ -43,7 +43,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4343
$resolver->setRequired('api_key');
4444
$resolver->setAllowedTypes('api_key', ['string']);
4545
$resolver->setAllowedTypes('mode', ['string']);
46-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
46+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4747
$resolver->setAllowedTypes('country', ['string', 'null']);
4848
}
4949
}

‎ProviderFactory/MapzenFactory.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,14 @@ final class MapzenFactory extends AbstractFactory
2828
];
2929

3030
/**
31-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
31+
* @param array{api_key: string, httplug_client: ?HttpClient} $config
3232
*/
3333
protected function getProvider(array $config): Provider
3434
{
3535
@trigger_error('Bazinga\GeocoderBundle\ProviderFactory\MapzenFactory is deprecated since 5.6, to be removed in 6.0. See https://github.com/geocoder-php/Geocoder/issues/808', E_USER_DEPRECATED);
3636

3737
$httplug = $config['httplug_client'] ?: $this->httpClient ?? HttpClientDiscovery::find();
38+
assert($httplug instanceof HttpClient);
3839

3940
return new Mapzen($httplug, $config['api_key']);
4041
}
@@ -46,7 +47,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4647
]);
4748

4849
$resolver->setRequired('api_key');
49-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
50+
$resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
5051
$resolver->setAllowedTypes('api_key', ['string']);
5152
}
5253
}

‎ProviderFactory/MaxMindBinaryFactory.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ final class MaxMindBinaryFactory extends AbstractFactory
2323
];
2424

2525
/**
26-
* @phpstan-param array{dat_file: string, open_flag: ?int} $config
26+
* @param array{dat_file: string, open_flag: ?int} $config
2727
*/
2828
protected function getProvider(array $config): Provider
2929
{

‎ProviderFactory/MaxMindFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\MaxMind\MaxMind;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class MaxMindFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class MaxMindFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, endpoint: string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, endpoint: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -42,7 +42,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4242
]);
4343

4444
$resolver->setRequired('api_key');
45-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
45+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4646
$resolver->setAllowedTypes('api_key', ['string']);
4747
$resolver->setAllowedValues('endpoint', [MaxMind::CITY_EXTENDED_SERVICE, MaxMind::OMNI_SERVICE]);
4848
}

‎ProviderFactory/NominatimFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\Nominatim\Nominatim;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class NominatimFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class NominatimFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{root_url: string, user_agent: string, httplug_client: ?HttpClient} $config
28+
* @param array{root_url: string, user_agent: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -42,7 +42,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4242
'user_agent' => 'BazingaGeocoderBundle',
4343
]);
4444

45-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
45+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4646
$resolver->setAllowedTypes('root_url', ['string']);
4747
$resolver->setAllowedTypes('user_agent', ['string']);
4848
$resolver->setRequired('user_agent');

‎ProviderFactory/OpenCageFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\OpenCage\OpenCage;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class OpenCageFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class OpenCageFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -41,7 +41,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4141
]);
4242

4343
$resolver->setRequired('api_key');
44-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
44+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4545
$resolver->setAllowedTypes('api_key', ['string']);
4646
}
4747
}

‎ProviderFactory/OpenRouteServiceFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\OpenRouteService\OpenRouteService;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class OpenRouteServiceFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class OpenRouteServiceFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -42,7 +42,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4242
]);
4343

4444
$resolver->setRequired('api_key');
45-
$resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
45+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4646
$resolver->setAllowedTypes('api_key', ['string']);
4747
}
4848
}

‎ProviderFactory/PickPointFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\PickPoint\PickPoint;
1616
use Geocoder\Provider\Provider;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class PickPointFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class PickPointFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -41,7 +41,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4141
]);
4242

4343
$resolver->setRequired('api_key');
44-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
44+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4545
$resolver->setAllowedTypes('api_key', ['string']);
4646
}
4747
}

‎ProviderFactory/PluginProviderFactory.php

+2-4
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,8 @@ final class PluginProviderFactory
2525
/**
2626
* @param Plugin[] $plugins
2727
* @param ProviderFactoryInterface|callable $factory
28-
* @param array $config config to the client factory
29-
* @param array $pluginProviderOptions config forwarded to the PluginProvider
30-
* @phpstan-param array<mixed, mixed> $config
31-
* @phpstan-param array<mixed, mixed> $pluginProviderOptions
28+
* @param array<mixed, mixed> $config config to the client factory
29+
* @param array<mixed, mixed> $pluginProviderOptions config forwarded to the PluginProvider
3230
*/
3331
public static function createPluginProvider(array $plugins, $factory, array $config, array $pluginProviderOptions = []): PluginProvider
3432
{

‎ProviderFactory/ProviderFactoryInterface.php

+3-4
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,15 @@
2020
interface ProviderFactoryInterface
2121
{
2222
/**
23-
* @phpstan-param array<mixed, mixed> $options
23+
* @param array<mixed, mixed> $options
2424
*/
2525
public function createProvider(array $options = []): Provider;
2626

2727
/**
2828
* Make sure the options are valid and the dependencies are met.
2929
*
30-
* @param array $options the options the user has provided
31-
* @param string $providerName the name the user has chosen for this provider
32-
* @phpstan-param array<mixed, mixed> $options
30+
* @param array<mixed, mixed> $options the options the user has provided
31+
* @param string $providerName the name the user has chosen for this provider
3332
*
3433
* @return void
3534
*

‎ProviderFactory/TomTomFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\Provider;
1616
use Geocoder\Provider\TomTom\TomTom;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class TomTomFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class TomTomFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{api_key: string, httplug_client: ?HttpClient} $config
28+
* @param array{api_key: string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -41,7 +41,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4141
]);
4242

4343
$resolver->setRequired('api_key');
44-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
44+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4545
$resolver->setAllowedTypes('api_key', ['string']);
4646
}
4747
}

‎ProviderFactory/YandexFactory.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
use Geocoder\Provider\Provider;
1616
use Geocoder\Provider\Yandex\Yandex;
17-
use Http\Client\HttpClient;
1817
use Http\Discovery\HttpClientDiscovery;
18+
use Psr\Http\Client\ClientInterface;
1919
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
final class YandexFactory extends AbstractFactory
@@ -25,7 +25,7 @@ final class YandexFactory extends AbstractFactory
2525
];
2626

2727
/**
28-
* @phpstan-param array{toponym: ?string, api_key: ?string, httplug_client: ?HttpClient} $config
28+
* @param array{toponym: ?string, api_key: ?string, httplug_client: ?ClientInterface} $config
2929
*/
3030
protected function getProvider(array $config): Provider
3131
{
@@ -42,7 +42,7 @@ protected static function configureOptionResolver(OptionsResolver $resolver)
4242
'api_key' => null,
4343
]);
4444

45-
$resolver->setAllowedTypes('httplug_client', ['object', 'null']);
45+
$resolver->setAllowedTypes('httplug_client', [ClientInterface::class, 'null']);
4646
$resolver->setAllowedTypes('toponym', ['string', 'null']);
4747
$resolver->setAllowedTypes('api_key', ['string', 'null']);
4848
}

‎Tests/Functional/Helper/CacheHelper.php

+12-61
Original file line numberDiff line numberDiff line change
@@ -14,73 +14,24 @@
1414

1515
use Psr\SimpleCache\CacheInterface;
1616

17-
/**
18-
* @internal
19-
*
20-
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
21-
*/
22-
class CacheHelper implements CacheInterface
23-
{
24-
/**
25-
* @return mixed
26-
*/
27-
public function get($key, $default = null)
28-
{
29-
}
30-
31-
/**
32-
* @return bool
33-
*/
34-
public function set($key, $value, $ttl = null)
35-
{
36-
return true;
37-
}
38-
39-
/**
40-
* @return bool
41-
*/
42-
public function delete($key)
43-
{
44-
return true;
45-
}
46-
17+
if (PHP_VERSION_ID >= 80000) {
4718
/**
48-
* @return bool
19+
* @internal
20+
*
21+
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
4922
*/
50-
public function clear()
23+
class CacheHelper implements CacheInterface
5124
{
52-
return true;
25+
use CacheHelperV8;
5326
}
54-
55-
/**
56-
* @return iterable
57-
*/
58-
public function getMultiple($keys, $default = null)
59-
{
60-
return [];
61-
}
62-
63-
/**
64-
* @return bool
65-
*/
66-
public function setMultiple($values, $ttl = null)
67-
{
68-
return true;
69-
}
70-
71-
/**
72-
* @return bool
73-
*/
74-
public function deleteMultiple($keys)
75-
{
76-
return true;
77-
}
78-
27+
} else {
7928
/**
80-
* @return bool
29+
* @internal
30+
*
31+
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
8132
*/
82-
public function has($key)
33+
class CacheHelper implements CacheInterface
8334
{
84-
return false;
35+
use CacheHelperV7;
8536
}
8637
}
+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
/*
6+
* This file is part of the BazingaGeocoderBundle package.
7+
* For the full copyright and license information, please view the LICENSE
8+
* file that was distributed with this source code.
9+
*
10+
* @license MIT License
11+
*/
12+
13+
namespace Bazinga\GeocoderBundle\Tests\Functional\Helper;
14+
15+
/**
16+
* @internal
17+
*
18+
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
19+
*/
20+
trait CacheHelperV7
21+
{
22+
/**
23+
* @return mixed
24+
*/
25+
public function get($key, $default = null)
26+
{
27+
}
28+
29+
/**
30+
* @return bool
31+
*/
32+
public function set($key, $value, $ttl = null)
33+
{
34+
return true;
35+
}
36+
37+
/**
38+
* @return bool
39+
*/
40+
public function delete($key)
41+
{
42+
return true;
43+
}
44+
45+
/**
46+
* @return bool
47+
*/
48+
public function clear()
49+
{
50+
return true;
51+
}
52+
53+
/**
54+
* @return iterable
55+
*/
56+
public function getMultiple($keys, $default = null)
57+
{
58+
return [];
59+
}
60+
61+
/**
62+
* @return bool
63+
*/
64+
public function setMultiple($values, $ttl = null)
65+
{
66+
return true;
67+
}
68+
69+
/**
70+
* @return bool
71+
*/
72+
public function deleteMultiple($keys)
73+
{
74+
return true;
75+
}
76+
77+
/**
78+
* @return bool
79+
*/
80+
public function has($key)
81+
{
82+
return false;
83+
}
84+
}
+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
/*
6+
* This file is part of the BazingaGeocoderBundle package.
7+
* For the full copyright and license information, please view the LICENSE
8+
* file that was distributed with this source code.
9+
*
10+
* @license MIT License
11+
*/
12+
13+
namespace Bazinga\GeocoderBundle\Tests\Functional\Helper;
14+
15+
/**
16+
* @internal
17+
*
18+
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
19+
*/
20+
trait CacheHelperV8
21+
{
22+
public function get(string $key, mixed $default = null): mixed
23+
{
24+
}
25+
26+
public function set(string $key, mixed $value, null|int|\DateInterval $ttl = null): bool
27+
{
28+
return true;
29+
}
30+
31+
public function delete(string $key): bool
32+
{
33+
return true;
34+
}
35+
36+
public function clear(): bool
37+
{
38+
return true;
39+
}
40+
41+
public function getMultiple(iterable $keys, mixed $default = null): iterable
42+
{
43+
return [];
44+
}
45+
46+
public function setMultiple(iterable $values, null|int|\DateInterval $ttl = null): bool
47+
{
48+
return true;
49+
}
50+
51+
public function deleteMultiple(iterable $keys): bool
52+
{
53+
return true;
54+
}
55+
56+
public function has(string $key): bool
57+
{
58+
return false;
59+
}
60+
}

‎composer.json

+30-30
Original file line numberDiff line numberDiff line change
@@ -12,45 +12,45 @@
1212
],
1313
"require": {
1414
"php": "^7.4 || ^8.0",
15-
"geocoder-php/plugin": "^1.4",
15+
"geocoder-php/plugin": "^1.5",
1616
"php-http/discovery": "^1.14",
1717
"symfony/console": "^4.4 || ^5.0 || ^6.0",
1818
"symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0",
1919
"symfony/options-resolver": "^4.4 || ^5.0 || ^6.0",
20-
"willdurand/geocoder": "^4.4"
20+
"willdurand/geocoder": "^4.6"
2121
},
2222
"require-dev": {
2323
"doctrine/orm": "~2.8",
24-
"fakerphp/faker": "^1.19",
25-
"friendsofphp/php-cs-fixer": "^3.8",
26-
"geocoder-php/algolia-places-provider": "^0.3",
27-
"geocoder-php/arcgis-online-provider": "^4.3",
28-
"geocoder-php/bing-maps-provider": "^4.2",
29-
"geocoder-php/cache-provider": "^4.3",
30-
"geocoder-php/chain-provider": "^4.3",
31-
"geocoder-php/free-geoip-provider": "^4.3",
32-
"geocoder-php/geo-plugin-provider": "^4.2",
33-
"geocoder-php/geoip2-provider": "^4.2",
24+
"fakerphp/faker": "^1.20",
25+
"friendsofphp/php-cs-fixer": "^3.9",
26+
"geocoder-php/algolia-places-provider": "^4.3.0",
27+
"geocoder-php/arcgis-online-provider": "^4.4",
28+
"geocoder-php/bing-maps-provider": "^4.3",
29+
"geocoder-php/cache-provider": "^4.4.0",
30+
"geocoder-php/chain-provider": "^4.5",
31+
"geocoder-php/free-geoip-provider": "^4.5",
32+
"geocoder-php/geo-plugin-provider": "^4.3",
33+
"geocoder-php/geoip2-provider": "^4.3",
3434
"geocoder-php/geoips-provider": "^4.0",
35-
"geocoder-php/geonames-provider": "^4.3",
36-
"geocoder-php/google-maps-places-provider": "^1.3",
37-
"geocoder-php/google-maps-provider": "^4.6",
38-
"geocoder-php/here-provider": "^0.6",
39-
"geocoder-php/host-ip-provider": "^4.3",
40-
"geocoder-php/ip-info-db-provider": "^4.2",
41-
"geocoder-php/ip-info-provider": "^0.3",
42-
"geocoder-php/ipstack-provider": "^0.3",
43-
"geocoder-php/locationiq-provider": "^1.2",
44-
"geocoder-php/mapbox-provider": "^1.3",
45-
"geocoder-php/mapquest-provider": "^4.2",
35+
"geocoder-php/geonames-provider": "^4.4",
36+
"geocoder-php/google-maps-places-provider": "^1.4",
37+
"geocoder-php/google-maps-provider": "^4.7",
38+
"geocoder-php/here-provider": "^4.3.0",
39+
"geocoder-php/host-ip-provider": "^4.4",
40+
"geocoder-php/ip-info-db-provider": "^4.3",
41+
"geocoder-php/ip-info-provider": "^4.3",
42+
"geocoder-php/ipstack-provider": "^4.3",
43+
"geocoder-php/locationiq-provider": "^1.4.0",
44+
"geocoder-php/mapbox-provider": "^1.4",
45+
"geocoder-php/mapquest-provider": "^4.3",
4646
"geocoder-php/mapzen-provider": "^4.0",
47-
"geocoder-php/maxmind-binary-provider": "^4.2",
48-
"geocoder-php/maxmind-provider": "^4.3",
49-
"geocoder-php/nominatim-provider": "^5.4",
50-
"geocoder-php/open-cage-provider": "^4.5",
51-
"geocoder-php/openrouteservice-provider": "^1.2",
52-
"geocoder-php/pickpoint-provider": "^4.2",
53-
"geocoder-php/tomtom-provider": "^4.2",
47+
"geocoder-php/maxmind-binary-provider": "^4.3",
48+
"geocoder-php/maxmind-provider": "^4.4",
49+
"geocoder-php/nominatim-provider": "^5.6",
50+
"geocoder-php/open-cage-provider": "^4.6",
51+
"geocoder-php/openrouteservice-provider": "^1.3",
52+
"geocoder-php/pickpoint-provider": "^4.3",
53+
"geocoder-php/tomtom-provider": "^4.3",
5454
"geocoder-php/yandex-provider": "^4.4",
5555
"geoip/geoip": "~1.17",
5656
"nyholm/nsa": "^1.3",

0 commit comments

Comments
 (0)
Please sign in to comment.