diff --git a/phpstan-baseline.php b/phpstan-baseline.php index 7024f68..4b8c247 100644 --- a/phpstan-baseline.php +++ b/phpstan-baseline.php @@ -95,7 +95,7 @@ ]; $ignoreErrors[] = [ // identifier: argument.type - 'message' => '#^Parameter \\#1 \\$factoryServiceId of static method Bazinga\\\\GeocoderBundle\\\\DependencyInjection\\\\Compiler\\\\FactoryValidatorPass\\:\\:addFactoryServiceId\\(\\) expects string, mixed given\\.$#', + 'message' => '#^Parameter \\#1 \\$factoryServiceId of static method Bazinga\\\\GeocoderBundle\\\\DependencyInjection\\\\Compiler\\\\FactoryValidatorPass\\:\\:addFactoryServiceId\\(\\) expects non\\-empty\\-string, mixed given\\.$#', 'count' => 1, 'path' => __DIR__.'/src/DependencyInjection/BazingaGeocoderExtension.php', ]; @@ -131,7 +131,7 @@ ]; $ignoreErrors[] = [ // identifier: argument.type - 'message' => '#^Parameter \\#2 \\$config of method Bazinga\\\\GeocoderBundle\\\\DependencyInjection\\\\BazingaGeocoderExtension\\:\\:configureProviderPlugins\\(\\) expects array\\, mixed given\\.$#', + 'message' => '#^Parameter \\#2 \\$config of method Bazinga\\\\GeocoderBundle\\\\DependencyInjection\\\\BazingaGeocoderExtension\\:\\:configureProviderPlugins\\(\\) expects array, mixed given\\.$#', 'count' => 1, 'path' => __DIR__.'/src/DependencyInjection/BazingaGeocoderExtension.php', ]; diff --git a/src/BazingaGeocoderBundle.php b/src/BazingaGeocoderBundle.php index afbbf8b..d29ec98 100644 --- a/src/BazingaGeocoderBundle.php +++ b/src/BazingaGeocoderBundle.php @@ -21,11 +21,8 @@ /** * @author William Durand */ -class BazingaGeocoderBundle extends Bundle +final class BazingaGeocoderBundle extends Bundle { - /** - * @return void - */ public function build(ContainerBuilder $container): void { parent::build($container); diff --git a/src/Command/GeocodeCommand.php b/src/Command/GeocodeCommand.php index 5e5b3dc..f66de92 100644 --- a/src/Command/GeocodeCommand.php +++ b/src/Command/GeocodeCommand.php @@ -24,15 +24,15 @@ /** * @author Markus Bachmann */ -#[AsCommand(name: 'geocoder:geocode', description: 'Geocode an address or an IP address')] -class GeocodeCommand extends Command +#[AsCommand( + name: 'geocoder:geocode', + description: 'Geocode an address or an IP address', +)] +final class GeocodeCommand extends Command { - private ProviderAggregator $geocoder; - - public function __construct(ProviderAggregator $geocoder) - { - $this->geocoder = $geocoder; - + public function __construct( + private readonly ProviderAggregator $geocoder, + ) { parent::__construct(); } @@ -48,8 +48,7 @@ protected function configure(): void You can force a provider with the "provider" option. php bin/console geocoder:geocoder "Eiffel Tower" --provider=yahoo -HELP - ); +HELP); } protected function execute(InputInterface $input, OutputInterface $output): int diff --git a/src/DataCollector/GeocoderDataCollector.php b/src/DataCollector/GeocoderDataCollector.php index d9bfe53..43037e3 100644 --- a/src/DataCollector/GeocoderDataCollector.php +++ b/src/DataCollector/GeocoderDataCollector.php @@ -21,7 +21,7 @@ /** * @author Michal Dabrowski */ -class GeocoderDataCollector extends DataCollector +final class GeocoderDataCollector extends DataCollector { /** * @var ProfilingPlugin[] @@ -43,7 +43,7 @@ public function reset(): void public function collect(Request $request, Response $response, ?\Throwable $exception = null): void { - if (!empty($this->data['queries'])) { + if ([] !== $this->data['queries']) { // To avoid collection more that once. return; } @@ -100,10 +100,7 @@ public function getProviderQueries(string $provider): array }); } - /** - * @return void - */ - public function addInstance(ProfilingPlugin $instance) + public function addInstance(ProfilingPlugin $instance): void { $this->instances[] = $instance; $this->data['providers'][] = $instance->getName(); diff --git a/src/DependencyInjection/BazingaGeocoderExtension.php b/src/DependencyInjection/BazingaGeocoderExtension.php index 36149df..e678eaf 100644 --- a/src/DependencyInjection/BazingaGeocoderExtension.php +++ b/src/DependencyInjection/BazingaGeocoderExtension.php @@ -76,10 +76,8 @@ public function load(array $configs, ContainerBuilder $container): void /** * @param array $config - * - * @return void */ - private function loadProviders(ContainerBuilder $container, array $config) + private function loadProviders(ContainerBuilder $container, array $config): void { foreach ($config['providers'] as $providerName => $providerConfig) { try { @@ -91,7 +89,7 @@ private function loadProviders(ContainerBuilder $container, array $config) // See if any option has a service reference $providerConfig['options'] = $this->findReferences($providerConfig['options']); $factoryClass::validate($providerConfig['options'], $providerName); - } catch (ServiceNotFoundException $e) { + } catch (ServiceNotFoundException) { // Assert: We are using a custom factory. If invalid config, it will be caught in FactoryValidatorPass $providerConfig['options'] = $this->findReferences($providerConfig['options']); FactoryValidatorPass::addFactoryServiceId($providerConfig['factory']); @@ -118,9 +116,9 @@ private function loadProviders(ContainerBuilder $container, array $config) /** * Configure plugins for a client. * - * @param array $config + * @param array $config * - * @return Reference[] + * @return list */ public function configureProviderPlugins(ContainerBuilder $container, array $config, string $providerServiceId): array { diff --git a/src/DependencyInjection/Compiler/FactoryValidatorPass.php b/src/DependencyInjection/Compiler/FactoryValidatorPass.php index 7b4eb72..9711bf6 100644 --- a/src/DependencyInjection/Compiler/FactoryValidatorPass.php +++ b/src/DependencyInjection/Compiler/FactoryValidatorPass.php @@ -24,9 +24,9 @@ class FactoryValidatorPass implements CompilerPassInterface { /** - * @var string[] + * @var list */ - private static $factoryServiceIds = []; + private static array $factoryServiceIds = []; public function process(ContainerBuilder $container): void { @@ -38,11 +38,9 @@ public function process(ContainerBuilder $container): void } /** - * @param string $factoryServiceId - * - * @return void + * @param non-empty-string $factoryServiceId */ - public static function addFactoryServiceId($factoryServiceId) + public static function addFactoryServiceId(string $factoryServiceId): void { self::$factoryServiceIds[] = $factoryServiceId; } diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index ca4d3da..4eae955 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -19,13 +19,11 @@ /** * @author William Durand */ -class Configuration implements ConfigurationInterface +final class Configuration implements ConfigurationInterface { - private bool $debug; - - public function __construct(bool $debug) - { - $this->debug = $debug; + public function __construct( + private readonly bool $debug, + ) { } /** diff --git a/src/Doctrine/ORM/GeocoderListener.php b/src/Doctrine/ORM/GeocoderListener.php index 1104b56..6b0edeb 100644 --- a/src/Doctrine/ORM/GeocoderListener.php +++ b/src/Doctrine/ORM/GeocoderListener.php @@ -24,7 +24,7 @@ /** * @author Markus Bachmann */ -class GeocoderListener implements EventSubscriber +final class GeocoderListener implements EventSubscriber { public function __construct( private readonly Provider $geocoder, diff --git a/src/Plugin/FakeIpPlugin.php b/src/Plugin/FakeIpPlugin.php index e45ff2d..8909d8a 100644 --- a/src/Plugin/FakeIpPlugin.php +++ b/src/Plugin/FakeIpPlugin.php @@ -24,17 +24,15 @@ * * @author Tobias Nyholm */ -class FakeIpPlugin implements Plugin +final class FakeIpPlugin implements Plugin { - private ?string $needle; - private ?string $replacement; private ?Generator $faker = null; - public function __construct(?string $needle, ?string $replacement = null, bool $useFaker = false) - { - $this->needle = $needle; - $this->replacement = $replacement; - + public function __construct( + private readonly ?string $needle, + private readonly ?string $replacement = null, + bool $useFaker = false, + ) { if ($useFaker) { $this->faker = new Generator(); $this->faker->addProvider(new Internet($this->faker)); diff --git a/src/Plugin/ProfilingPlugin.php b/src/Plugin/ProfilingPlugin.php index c229077..358b35f 100644 --- a/src/Plugin/ProfilingPlugin.php +++ b/src/Plugin/ProfilingPlugin.php @@ -24,27 +24,22 @@ /** * @author Tobias Nyholm */ -class ProfilingPlugin implements Plugin +final class ProfilingPlugin implements Plugin { /** * @var list */ - private $queries = []; + private array $queries = []; /** - * @var string service id of the provider + * @param non-empty-string $name service id of the provider */ - private $name; - - public function __construct(string $name) - { - $this->name = $name; + public function __construct( + private readonly string $name, + ) { } - /** - * @return Promise - */ - public function handleQuery(Query $query, callable $next, callable $first) + public function handleQuery(Query $query, callable $next, callable $first): Promise { $startTime = microtime(true); @@ -61,12 +56,7 @@ public function handleQuery(Query $query, callable $next, callable $first) }); } - /** - * @param mixed $result - * - * @return void - */ - private function logQuery(Query $query, float $duration, $result = null) + private function logQuery(Query $query, float $duration, mixed $result = null): void { if ($query instanceof GeocodeQuery) { $queryString = $query->getText(); @@ -94,6 +84,9 @@ public function getQueries(): array return $this->queries; } + /** + * @return non-empty-string + */ public function getName(): string { return $this->name; diff --git a/src/ProviderFactory/AbstractFactory.php b/src/ProviderFactory/AbstractFactory.php index 83da203..efb822c 100644 --- a/src/ProviderFactory/AbstractFactory.php +++ b/src/ProviderFactory/AbstractFactory.php @@ -28,17 +28,15 @@ abstract class AbstractFactory implements ProviderFactoryInterface /** * @var list */ - protected static $dependencies = []; + protected static array $dependencies = []; - protected ?ClientInterface $httpClient; - - public function __construct(?ClientInterface $httpClient = null) - { - $this->httpClient = $httpClient; + public function __construct( + protected ?ClientInterface $httpClient = null, + ) { } /** - * @param array $config + * @param array $config */ abstract protected function getProvider(array $config): Provider; @@ -53,7 +51,7 @@ public function createProvider(array $options = []): Provider return $this->getProvider($config); } - public static function validate(array $options, $providerName) + public static function validate(array $options, string $providerName): void { static::verifyDependencies(); @@ -77,11 +75,9 @@ public static function validate(array $options, $providerName) /** * Make sure that we have the required class and throw and exception if we don't. * - * @return void - * * @throws \LogicException */ - protected static function verifyDependencies() + protected static function verifyDependencies(): void { foreach (static::$dependencies as $dependency) { if (!class_exists($dependency['requiredClass'])) { @@ -93,10 +89,8 @@ protected static function verifyDependencies() /** * By default, we do not have any options to configure. A factory should override this function and configure * the options resolver. - * - * @return void */ - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { } } diff --git a/src/ProviderFactory/AlgoliaFactory.php b/src/ProviderFactory/AlgoliaFactory.php index d88639e..42fcf09 100644 --- a/src/ProviderFactory/AlgoliaFactory.php +++ b/src/ProviderFactory/AlgoliaFactory.php @@ -20,7 +20,7 @@ final class AlgoliaFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => AlgoliaPlaces::class, 'packageName' => 'geocoder-php/algolia-places-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new AlgoliaPlaces($httpClient, $config['api_key'], $config['app_id']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/ArcGISOnlineFactory.php b/src/ProviderFactory/ArcGISOnlineFactory.php index a51aeb0..625cd3c 100644 --- a/src/ProviderFactory/ArcGISOnlineFactory.php +++ b/src/ProviderFactory/ArcGISOnlineFactory.php @@ -20,7 +20,7 @@ final class ArcGISOnlineFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => ArcGISOnline::class, 'packageName' => 'geocoder-php/arcgis-online-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new ArcGISOnline($httpClient, $config['source_country']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/BingMapsFactory.php b/src/ProviderFactory/BingMapsFactory.php index ce141b9..aa4e38d 100644 --- a/src/ProviderFactory/BingMapsFactory.php +++ b/src/ProviderFactory/BingMapsFactory.php @@ -20,7 +20,7 @@ final class BingMapsFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => BingMaps::class, 'packageName' => 'geocoder-php/bing-maps-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new BingMaps($httpClient, $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/ChainFactory.php b/src/ProviderFactory/ChainFactory.php index 77eb440..fa8441d 100644 --- a/src/ProviderFactory/ChainFactory.php +++ b/src/ProviderFactory/ChainFactory.php @@ -25,7 +25,7 @@ final class ChainFactory extends AbstractFactory implements LoggerAwareInterface { use LoggerAwareTrait; - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => Chain::class, 'packageName' => 'geocoder-php/chain-provider'], ]; @@ -42,7 +42,7 @@ protected function getProvider(array $config): Provider return $provider; } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { parent::configureOptionResolver($resolver); diff --git a/src/ProviderFactory/FreeGeoIpFactory.php b/src/ProviderFactory/FreeGeoIpFactory.php index d488461..1a0407d 100644 --- a/src/ProviderFactory/FreeGeoIpFactory.php +++ b/src/ProviderFactory/FreeGeoIpFactory.php @@ -20,7 +20,7 @@ final class FreeGeoIpFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => FreeGeoIp::class, 'packageName' => 'geocoder-php/free-geoip-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new FreeGeoIp($httpClient, $config['base_url']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/GeoIP2Factory.php b/src/ProviderFactory/GeoIP2Factory.php index 77dfdbc..34814d2 100644 --- a/src/ProviderFactory/GeoIP2Factory.php +++ b/src/ProviderFactory/GeoIP2Factory.php @@ -22,7 +22,7 @@ final class GeoIP2Factory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => GeoIP2::class, 'packageName' => 'geocoder-php/geoip2-provider'], ]; @@ -47,7 +47,7 @@ protected function getProvider(array $config): Provider return new GeoIP2($adapter); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'model' => GeoIP2Adapter::GEOIP2_MODEL_CITY, diff --git a/src/ProviderFactory/GeoPluginFactory.php b/src/ProviderFactory/GeoPluginFactory.php index ec77677..7fcf2de 100644 --- a/src/ProviderFactory/GeoPluginFactory.php +++ b/src/ProviderFactory/GeoPluginFactory.php @@ -20,7 +20,7 @@ final class GeoPluginFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => GeoPlugin::class, 'packageName' => 'geocoder-php/geo-plugin-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new GeoPlugin($httpClient); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/GeonamesFactory.php b/src/ProviderFactory/GeonamesFactory.php index 284f97a..426828e 100644 --- a/src/ProviderFactory/GeonamesFactory.php +++ b/src/ProviderFactory/GeonamesFactory.php @@ -20,7 +20,7 @@ final class GeonamesFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => Geonames::class, 'packageName' => 'geocoder-php/geonames-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new Geonames($httpClient, $config['username']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/GoogleMapsFactory.php b/src/ProviderFactory/GoogleMapsFactory.php index 01339d1..4da1f58 100644 --- a/src/ProviderFactory/GoogleMapsFactory.php +++ b/src/ProviderFactory/GoogleMapsFactory.php @@ -20,7 +20,7 @@ final class GoogleMapsFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => GoogleMaps::class, 'packageName' => 'geocoder-php/google-maps-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new GoogleMaps($httpClient, $config['region'], $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/GoogleMapsPlacesFactory.php b/src/ProviderFactory/GoogleMapsPlacesFactory.php index ceaf9b0..8cb472d 100644 --- a/src/ProviderFactory/GoogleMapsPlacesFactory.php +++ b/src/ProviderFactory/GoogleMapsPlacesFactory.php @@ -20,7 +20,7 @@ final class GoogleMapsPlacesFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => GoogleMapsPlaces::class, 'packageName' => 'geocoder-php/google-maps-places-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new GoogleMapsPlaces($httpClient, $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/HereFactory.php b/src/ProviderFactory/HereFactory.php index 6b723f4..01dab55 100644 --- a/src/ProviderFactory/HereFactory.php +++ b/src/ProviderFactory/HereFactory.php @@ -20,7 +20,7 @@ final class HereFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => Here::class, 'packageName' => 'geocoder-php/here-provider'], ]; @@ -46,7 +46,7 @@ protected function getProvider(array $config): Provider return new Here($httpClient, $config['app_id'], $config['app_code'], $config['use_cit']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/HostIpFactory.php b/src/ProviderFactory/HostIpFactory.php index 3585478..2114b26 100644 --- a/src/ProviderFactory/HostIpFactory.php +++ b/src/ProviderFactory/HostIpFactory.php @@ -20,7 +20,7 @@ final class HostIpFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => HostIp::class, 'packageName' => 'geocoder-php/host-ip-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new HostIp($httpClient); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/IpInfoDbFactory.php b/src/ProviderFactory/IpInfoDbFactory.php index 105648c..bbddf7f 100644 --- a/src/ProviderFactory/IpInfoDbFactory.php +++ b/src/ProviderFactory/IpInfoDbFactory.php @@ -20,7 +20,7 @@ final class IpInfoDbFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => IpInfoDb::class, 'packageName' => 'geocoder-php/ip-info-db-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new IpInfoDb($httpClient, $config['api_key'], $config['precision']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/IpInfoFactory.php b/src/ProviderFactory/IpInfoFactory.php index ea11dd5..792528f 100644 --- a/src/ProviderFactory/IpInfoFactory.php +++ b/src/ProviderFactory/IpInfoFactory.php @@ -20,7 +20,7 @@ final class IpInfoFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => IpInfo::class, 'packageName' => 'geocoder-php/ip-info-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new IpInfo($httpClient); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/IpstackFactory.php b/src/ProviderFactory/IpstackFactory.php index 5706fbd..3da5f84 100644 --- a/src/ProviderFactory/IpstackFactory.php +++ b/src/ProviderFactory/IpstackFactory.php @@ -20,7 +20,7 @@ final class IpstackFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => Ipstack::class, 'packageName' => 'geocoder-php/ipstack-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new Ipstack($httpClient, $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/LocationIQFactory.php b/src/ProviderFactory/LocationIQFactory.php index d8081fe..de39cd3 100644 --- a/src/ProviderFactory/LocationIQFactory.php +++ b/src/ProviderFactory/LocationIQFactory.php @@ -18,7 +18,7 @@ final class LocationIQFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => LocationIQ::class, 'packageName' => 'geocoder-php/locationiq-provider'], ]; @@ -32,7 +32,7 @@ protected function getProvider(array $config): Provider return new LocationIQ($httpClient, $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/MapQuestFactory.php b/src/ProviderFactory/MapQuestFactory.php index d376f2f..0543f7d 100644 --- a/src/ProviderFactory/MapQuestFactory.php +++ b/src/ProviderFactory/MapQuestFactory.php @@ -20,7 +20,7 @@ final class MapQuestFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => MapQuest::class, 'packageName' => 'geocoder-php/mapquest-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new MapQuest($httpClient, $config['api_key'], $config['licensed']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/MapboxFactory.php b/src/ProviderFactory/MapboxFactory.php index 04ba1db..a0e251f 100644 --- a/src/ProviderFactory/MapboxFactory.php +++ b/src/ProviderFactory/MapboxFactory.php @@ -18,7 +18,7 @@ final class MapboxFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => Mapbox::class, 'packageName' => 'geocoder-php/mapbox-provider'], ]; @@ -32,7 +32,7 @@ protected function getProvider(array $config): Provider return new Mapbox($httpClient, $config['api_key'], $config['country'], $config['mode']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/MaxMindFactory.php b/src/ProviderFactory/MaxMindFactory.php index a3b3043..5787b7b 100644 --- a/src/ProviderFactory/MaxMindFactory.php +++ b/src/ProviderFactory/MaxMindFactory.php @@ -20,7 +20,7 @@ final class MaxMindFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => MaxMind::class, 'packageName' => 'geocoder-php/maxmind-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new MaxMind($httpClient, $config['api_key'], $config['endpoint']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/NominatimFactory.php b/src/ProviderFactory/NominatimFactory.php index f86ea22..73bb9d4 100644 --- a/src/ProviderFactory/NominatimFactory.php +++ b/src/ProviderFactory/NominatimFactory.php @@ -20,7 +20,7 @@ final class NominatimFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => Nominatim::class, 'packageName' => 'geocoder-php/nominatim-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new Nominatim($httpClient, $config['root_url'], $config['user_agent']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/OpenCageFactory.php b/src/ProviderFactory/OpenCageFactory.php index fb21b7f..72d4c29 100644 --- a/src/ProviderFactory/OpenCageFactory.php +++ b/src/ProviderFactory/OpenCageFactory.php @@ -20,7 +20,7 @@ final class OpenCageFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => OpenCage::class, 'packageName' => 'geocoder-php/open-cage-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new OpenCage($httpClient, $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/OpenRouteServiceFactory.php b/src/ProviderFactory/OpenRouteServiceFactory.php index f53e96d..ebafcc7 100644 --- a/src/ProviderFactory/OpenRouteServiceFactory.php +++ b/src/ProviderFactory/OpenRouteServiceFactory.php @@ -20,7 +20,7 @@ final class OpenRouteServiceFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => OpenRouteService::class, 'packageName' => 'geocoder-php/openrouteservice-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new OpenRouteService($httpClient, $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/PickPointFactory.php b/src/ProviderFactory/PickPointFactory.php index f7fdc9f..b70c6ec 100644 --- a/src/ProviderFactory/PickPointFactory.php +++ b/src/ProviderFactory/PickPointFactory.php @@ -20,7 +20,7 @@ final class PickPointFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => PickPoint::class, 'packageName' => 'geocoder-php/pickpoint-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new PickPoint($httpClient, $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/PluginProviderFactory.php b/src/ProviderFactory/PluginProviderFactory.php index af1a2ce..2857610 100644 --- a/src/ProviderFactory/PluginProviderFactory.php +++ b/src/ProviderFactory/PluginProviderFactory.php @@ -25,7 +25,7 @@ final class PluginProviderFactory /** * @param Plugin[] $plugins * @param ProviderFactoryInterface|callable $factory - * @param array $config config to the client factory + * @param array $config config to the client factory * @param array{max_restarts?: int<0, max>} $pluginProviderOptions config forwarded to the PluginProvider */ public static function createPluginProvider(array $plugins, $factory, array $config, array $pluginProviderOptions = []): PluginProvider diff --git a/src/ProviderFactory/ProviderFactoryInterface.php b/src/ProviderFactory/ProviderFactoryInterface.php index 5f96dba..91d0586 100644 --- a/src/ProviderFactory/ProviderFactoryInterface.php +++ b/src/ProviderFactory/ProviderFactoryInterface.php @@ -13,6 +13,12 @@ namespace Bazinga\GeocoderBundle\ProviderFactory; use Geocoder\Provider\Provider; +use Symfony\Component\OptionsResolver\Exception\AccessException; +use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException; +use Symfony\Component\OptionsResolver\Exception\MissingOptionsException; +use Symfony\Component\OptionsResolver\Exception\NoSuchOptionException; +use Symfony\Component\OptionsResolver\Exception\OptionDefinitionException; +use Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException; /** * @author Tobias Nyholm @@ -20,25 +26,23 @@ interface ProviderFactoryInterface { /** - * @param array $options + * @param array $options */ public function createProvider(array $options = []): Provider; /** * Make sure the options are valid and the dependencies are met. * - * @param array $options the options the user has provided - * @param string $providerName the name the user has chosen for this provider + * @param array $options the options the user has provided + * @param non-empty-string $providerName the name the user has chosen for this provider * - * @return void - * - * @throws \LogicException If the factory has missing dependencies - * @throws \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException If an option name is undefined - * @throws \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException If an option doesn't fulfill the specified validation rules - * @throws \Symfony\Component\OptionsResolver\Exception\MissingOptionsException If a required option is missing - * @throws \Symfony\Component\OptionsResolver\Exception\OptionDefinitionException If there is a cyclic dependency between lazy options and/or normalizers - * @throws \Symfony\Component\OptionsResolver\Exception\NoSuchOptionException If a lazy option reads an unavailable option - * @throws \Symfony\Component\OptionsResolver\Exception\AccessException If called from a lazy option or normalizer + * @throws \LogicException If the factory has missing dependencies + * @throws UndefinedOptionsException If an option name is undefined + * @throws InvalidOptionsException If an option doesn't fulfill the specified validation rules + * @throws MissingOptionsException If a required option is missing + * @throws OptionDefinitionException If there is a cyclic dependency between lazy options and/or normalizers + * @throws NoSuchOptionException If a lazy option reads an unavailable option + * @throws AccessException If called from a lazy option or normalizer */ - public static function validate(array $options, $providerName); + public static function validate(array $options, string $providerName): void; } diff --git a/src/ProviderFactory/TomTomFactory.php b/src/ProviderFactory/TomTomFactory.php index 4f57151..0a39399 100644 --- a/src/ProviderFactory/TomTomFactory.php +++ b/src/ProviderFactory/TomTomFactory.php @@ -20,7 +20,7 @@ final class TomTomFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => TomTom::class, 'packageName' => 'geocoder-php/tomtom-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new TomTom($httpClient, $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/ProviderFactory/YandexFactory.php b/src/ProviderFactory/YandexFactory.php index 77b2a6d..fcf5230 100644 --- a/src/ProviderFactory/YandexFactory.php +++ b/src/ProviderFactory/YandexFactory.php @@ -20,7 +20,7 @@ final class YandexFactory extends AbstractFactory { - protected static $dependencies = [ + protected static array $dependencies = [ ['requiredClass' => Yandex::class, 'packageName' => 'geocoder-php/yandex-provider'], ]; @@ -34,7 +34,7 @@ protected function getProvider(array $config): Provider return new Yandex($httpClient, $config['toponym'], $config['api_key']); } - protected static function configureOptionResolver(OptionsResolver $resolver) + protected static function configureOptionResolver(OptionsResolver $resolver): void { $resolver->setDefaults([ 'http_client' => null, diff --git a/src/Validator/Constraint/AddressValidator.php b/src/Validator/Constraint/AddressValidator.php index f0126d9..4b9dfa5 100644 --- a/src/Validator/Constraint/AddressValidator.php +++ b/src/Validator/Constraint/AddressValidator.php @@ -23,22 +23,14 @@ /** * @author Tomas Norkūnas */ -class AddressValidator extends ConstraintValidator +final class AddressValidator extends ConstraintValidator { - /** - * @var Provider - */ - protected $addressGeocoder; - - public function __construct(Provider $addressGeocoder) - { - $this->addressGeocoder = $addressGeocoder; + public function __construct( + private readonly Provider $addressGeocoder, + ) { } - /** - * @param mixed $value - */ - public function validate($value, Constraint $constraint): void + public function validate(mixed $value, Constraint $constraint): void { if (!$constraint instanceof Address) { throw new UnexpectedTypeException($constraint, Address::class); @@ -65,10 +57,7 @@ public function validate($value, Constraint $constraint): void } } - /** - * @return void - */ - private function buildViolation(Address $constraint, string $address) + private function buildViolation(Address $constraint, string $address): void { $this->context->buildViolation($constraint->message) ->setParameter('{{ address }}', $this->formatValue($address)) diff --git a/tests/Plugin/FakeIpPluginTest.php b/tests/Plugin/FakeIpPluginTest.php index d24c18e..b9677d1 100644 --- a/tests/Plugin/FakeIpPluginTest.php +++ b/tests/Plugin/FakeIpPluginTest.php @@ -18,7 +18,7 @@ use PHPUnit\Framework\TestCase; /** - * @author Quentin Dequippe */ final class FakeIpPluginTest extends TestCase {