abstract class ProviderUsingHandlerBase in Geocoder 8.3
Same name and namespace in other branches
- 8.2 src/ProviderUsingHandlerBase.php \Drupal\geocoder\ProviderUsingHandlerBase
Provides a base class for providers using handlers.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\geocoder\ProviderBase implements ContainerFactoryPluginInterface, ProviderInterface
- class \Drupal\geocoder\ProviderUsingHandlerBase
- class \Drupal\geocoder\ProviderBase implements ContainerFactoryPluginInterface, ProviderInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of ProviderUsingHandlerBase
5 files declare their use of ProviderUsingHandlerBase
- File.php in modules/
geocoder_field/ src/ Plugin/ Geocoder/ Provider/ File.php - Geoip.php in src/
Plugin/ Geocoder/ Provider/ Geoip.php - GeoJsonFile.php in modules/
geocoder_geofield/ src/ Plugin/ Geocoder/ Provider/ GeoJsonFile.php - GPXFile.php in modules/
geocoder_geofield/ src/ Plugin/ Geocoder/ Provider/ GPXFile.php - KMLFile.php in modules/
geocoder_geofield/ src/ Plugin/ Geocoder/ Provider/ KMLFile.php
File
- src/
ProviderUsingHandlerBase.php, line 16
Namespace
Drupal\geocoderView source
abstract class ProviderUsingHandlerBase extends ProviderBase {
/**
* The provider handler.
*
* @var \Geocoder\Provider\Provider
*/
protected $handler;
/**
* The V4 Stateful handler wrapper.
*
* @var \Geocoder\StatefulGeocoder
*/
protected $handlerWrapper;
/**
* {@inheritdoc}
*
* @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, ConfigFactoryInterface $config_factory, CacheBackendInterface $cache_backend, LanguageManagerInterface $language_manager) {
// The ProviderBase constructor needs to be run anyway (before possible
// exception @throw), to allow the ProviderBase process method.
parent::__construct($configuration, $plugin_id, $plugin_definition, $config_factory, $cache_backend, $language_manager);
if (empty($plugin_definition['handler'])) {
throw new InvalidPluginDefinitionException($plugin_id, "Plugin '{$plugin_id}' should define a handler.");
}
}
/**
* {@inheritdoc}
*
* @throws \ReflectionException
* @throws \Geocoder\Exception\Exception
*/
protected function doGeocode($source) {
// In case of a Geocoder Provider returning a \Geocoder\Collection.
if ($this
->getHandler() instanceof Provider) {
return $this
->getHandlerWrapper()
->geocode($source);
}
// In case of a GeoPHP Geometry Provider returning a \Geometry.
if ($this
->getHandler() instanceof GeometryProviderInterface) {
return $this
->getHandler()
->geocode($source);
}
return NULL;
}
/**
* {@inheritdoc}
*
* @throws \ReflectionException
* @throws \Geocoder\Exception\Exception
*/
protected function doReverse($latitude, $longitude) {
return $this
->getHandlerWrapper()
->reverse($latitude, $longitude);
}
/**
* Returns the provider handler.
*
* @return \Geocoder\Provider\Provider|\Drupal\geocoder_geofield\Geocoder\Provider\GeometryProviderInterface
* The provider plugin.
*
* @throws \ReflectionException
*/
protected function getHandler() {
if ($this->handler === NULL) {
$definition = $this
->getPluginDefinition();
$reflection_class = new \ReflectionClass($definition['handler']);
$this->handler = $reflection_class
->newInstanceArgs($this
->getArguments());
}
return $this->handler;
}
/**
* Returns the V4 Stateful wrapper.
*
* @return \Geocoder\StatefulGeocoder
* The current handler wrapped in this class.
*
* @throws \ReflectionException
*/
protected function getHandlerWrapper() : StatefulGeocoder {
if ($this->handlerWrapper === NULL) {
$this->handlerWrapper = new StatefulGeocoder($this
->getHandler(), $this->languageManager
->getCurrentLanguage()
->getId());
}
return $this->handlerWrapper;
}
/**
* Builds a list of arguments to be used by the handler.
*
* @return array
* The list of arguments for handler instantiation.
*/
protected function getArguments() : array {
$arguments = [];
foreach ($this
->getPluginDefinition()['arguments'] as $key => $argument) {
// No default value has been passed.
if (\is_string($key)) {
$config_name = $key;
$default_value = $argument;
}
else {
$config_name = $argument;
$default_value = NULL;
}
$arguments[] = $this->configuration[$config_name] ?? $default_value;
}
return $arguments;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
ProviderBase:: |
protected | property | The cache backend used to cache geocoding data. | |
ProviderBase:: |
protected | property | The config factory service. | |
ProviderBase:: |
protected | property | The configurable language manager. | |
ProviderBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
2 |
ProviderBase:: |
public | function |
Geocode a source string. Overrides ProviderInterface:: |
|
ProviderBase:: |
protected | function | Builds a cached id. | |
ProviderBase:: |
protected | function | Provides a helper callback for geocode() and reverse(). | |
ProviderBase:: |
public | function |
Reverse geocode latitude and longitude. Overrides ProviderInterface:: |
|
ProviderUsingHandlerBase:: |
protected | property | The provider handler. | |
ProviderUsingHandlerBase:: |
protected | property | The V4 Stateful handler wrapper. | |
ProviderUsingHandlerBase:: |
protected | function |
Overrides ProviderBase:: |
1 |
ProviderUsingHandlerBase:: |
protected | function |
Overrides ProviderBase:: |
1 |
ProviderUsingHandlerBase:: |
protected | function | Builds a list of arguments to be used by the handler. | 1 |
ProviderUsingHandlerBase:: |
protected | function | Returns the provider handler. | 1 |
ProviderUsingHandlerBase:: |
protected | function | Returns the V4 Stateful wrapper. | |
ProviderUsingHandlerBase:: |
public | function |
Overrides ProviderBase:: |
2 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |