class Random in Geocoder 8.3
Same name and namespace in other branches
- 8.2 src/Plugin/Geocoder/Provider/Random.php \Drupal\geocoder\Plugin\Geocoder\Provider\Random
- 7.2 src/Plugin/Geocoder/Provider/Random.php \Drupal\geocoder\Plugin\Geocoder\Provider\Random
Class Random.
Plugin annotation
@GeocoderProvider(
id = "random",
name = "Random"
)
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\Plugin\Geocoder\Provider\Random
- class \Drupal\geocoder\ProviderBase implements ContainerFactoryPluginInterface, ProviderInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Random
File
- src/
Plugin/ Geocoder/ Provider/ Random.php, line 19
Namespace
Drupal\geocoder\Plugin\Geocoder\ProviderView source
class Random extends ProviderBase {
/**
* The address factory.
*
* @var \Geocoder\Model\Address
*/
protected $addressFactory;
/**
* The module handler service.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* {@inheritdoc}
*/
protected function doGeocode($source) {
return new AddressCollection([
$this
->getAddressFactory()
->createFromArray($this
->getRandomResult()),
]);
}
/**
* {@inheritdoc}
*/
public function doReverse($latitude, $longitude) {
$result = $this
->getRandomResult();
$result['latitude'] = $latitude;
$result['longitude'] = $longitude;
return new AddressCollection([
$this
->getAddressFactory()
->createFromArray($result),
]);
}
/**
* Get Random Country info.
*
* @todo [cc]: Tidy-up, document, etc.
*/
private function getRandomCountryInfo($type = NULL) {
$manager = new CountryManager($this
->getModuleHandler());
$countries = $manager
->getList();
uksort($countries, function () {
return rand() > rand();
});
$country = array_slice($countries, 0, 1);
$value = [
'code' => key($country),
'name' => reset($country),
];
if (is_null($type)) {
return $value;
}
return isset($value[$type]) ? $value[$type] : $value;
}
/**
* Generate a fake random address array.
*
* @todo [cc]: Tidi-up, document, etc.
*
* @return array
* Return array of dta such as latitude, longitude, etc.
*/
protected function getRandomResult() {
$country = $this
->getRandomCountryInfo();
$streetTypes = [
'street',
'avenue',
'square',
'road',
'way',
'drive',
'lane',
'place',
'hill',
'gardens',
'park',
];
return [
'latitude' => mt_rand(0, 90) + mt_rand() / mt_getrandmax(),
'longitude' => mt_rand(-180, 180) + mt_rand() / mt_getrandmax(),
'streetName' => $this
->getRandomCountryInfo('name') . ' ' . $streetTypes[mt_rand(0, count($streetTypes) - 1)],
'streetNumber' => (string) mt_rand(1, 1000),
'postalCode' => (string) mt_rand(1, 1000),
'locality' => sha1(mt_rand() / mt_getrandmax()),
'country' => (string) $country['name'],
'countryCode' => $country['code'],
];
}
/**
* Returns the address factory.
*
* @return \Geocoder\Model\Address
* Return the address Factory.
*/
protected function getAddressFactory() {
if (!isset($this->addressFactory)) {
$this->addressFactory = new Address('', new AdminLevelCollection());
}
return $this->addressFactory;
}
/**
* Returns the module handler service.
*
* @return \Drupal\Core\Extension\ModuleHandlerInterface
* Return the module Handler.
*/
protected function getModuleHandler() {
if (!isset($this->moduleHandler)) {
$this->moduleHandler = \Drupal::moduleHandler();
}
return $this->moduleHandler;
}
}
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:: |
|
ProviderBase:: |
public | function |
Constructs a geocoder provider plugin object. Overrides PluginBase:: |
1 |
Random:: |
protected | property | The address factory. | |
Random:: |
protected | property | The module handler service. | |
Random:: |
protected | function |
Performs the geocoding. Overrides ProviderBase:: |
|
Random:: |
public | function |
Performs the reverse geocode. Overrides ProviderBase:: |
|
Random:: |
protected | function | Returns the address factory. | |
Random:: |
protected | function | Returns the module handler service. | |
Random:: |
private | function | Get Random Country info. | |
Random:: |
protected | function | Generate a fake random address array. | |
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. |