public function DataProviderManager::getDataProviderByFieldDefinition in Geolocation Field 8.2
Same name and namespace in other branches
- 8.3 src/DataProviderManager.php \Drupal\geolocation\DataProviderManager::getDataProviderByFieldDefinition()
Return DataProvider by field type.
Parameters
\Drupal\Core\Field\FieldDefinitionInterface $fieldDefinition: Field definition.
array $configuration: Configuration.
Return value
\Drupal\geolocation\DataProviderInterface|false Data provider.
File
- src/DataProviderManager.php, line 77 
Class
- DataProviderManager
- Search plugin manager.
Namespace
Drupal\geolocationCode
public function getDataProviderByFieldDefinition(FieldDefinitionInterface $fieldDefinition, array $configuration = []) {
  $definitions = $this
    ->getDefinitions();
  try {
    foreach ($definitions as $dataProviderId => $dataProviderDefinition) {
      /** @var \Drupal\geolocation\DataProviderInterface $dataProvider */
      $dataProvider = $this
        ->createInstance($dataProviderId, $configuration);
      if ($dataProvider
        ->isFieldGeoOption($fieldDefinition)) {
        $dataProvider
          ->setFieldDefinition($fieldDefinition);
        return $dataProvider;
      }
    }
  } catch (\Exception $e) {
    return FALSE;
  }
  return FALSE;
}