LocationInputPluginManager.php in Search API Location 8
File
src/LocationInput/LocationInputPluginManager.php
View source
<?php
namespace Drupal\search_api_location\LocationInput;
use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Plugin\DefaultPluginManager;
class LocationInputPluginManager extends DefaultPluginManager {
protected $locationInputMethods;
public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
parent::__construct('Plugin/search_api_location/location_input', $namespaces, $module_handler, 'Drupal\\search_api_location\\LocationInput\\LocationInputInterface', 'Drupal\\search_api_location\\Annotation\\LocationInput');
$this
->alterInfo('search_api_location_input_info');
}
public function getInstances() {
if (!isset($this->locationInputMethods)) {
$this->locationInputMethods = [];
foreach ($this
->getDefinitions() as $name => $data_type_definition) {
if (class_exists($data_type_definition['class']) && empty($this->locationInputMethods[$name])) {
$data_type = $this
->createInstance($name);
$this->locationInputMethods[$name] = $data_type;
}
}
}
return $this->locationInputMethods;
}
public function getInstancesOptions() {
$options = [];
foreach ($this
->getDefinitions() as $id => $plugin) {
$options[$id] = $plugin['label'];
}
return $options;
}
}