abstract class DatasourcePluginBase in Search API 8
Defines a base class from which other datasources may extend.
Plugins extending this class need to define a plugin definition array through annotation. These definition arrays may be altered through hook_search_api_datasource_info_alter(). The definition includes the following keys:
- id: The unique, system-wide identifier of the datasource.
- label: The human-readable name of the datasource, translated.
- description: A human-readable description for the datasource, translated.
A complete plugin definition should be written as in this example:
@SearchApiDatasource(
id = "my_datasource",
label = @Translation("My datasource"),
description = @Translation("Exposes my custom items as a datasource."),
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\search_api\Plugin\HideablePluginBase implements HideablePluginInterface
- class \Drupal\search_api\Plugin\ConfigurablePluginBase implements ConfigurablePluginInterface uses PluginDependencyTrait
- class \Drupal\search_api\Plugin\IndexPluginBase implements IndexPluginInterface
- class \Drupal\search_api\Datasource\DatasourcePluginBase implements DatasourceInterface
- class \Drupal\search_api\Plugin\IndexPluginBase implements IndexPluginInterface
- class \Drupal\search_api\Plugin\ConfigurablePluginBase implements ConfigurablePluginInterface uses PluginDependencyTrait
- class \Drupal\search_api\Plugin\HideablePluginBase implements HideablePluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of DatasourcePluginBase
See also
\Drupal\search_api\Annotation\SearchApiDatasource
\Drupal\search_api\Datasource\DatasourcePluginManager
\Drupal\search_api\Datasource\DatasourceInterface
3 files declare their use of DatasourcePluginBase
- ContentEntity.php in src/
Plugin/ search_api/ datasource/ ContentEntity.php - NoUi.php in tests/
search_api_test_no_ui/ src/ Plugin/ search_api/ datasource/ NoUi.php - TestDatasource.php in tests/
search_api_test/ src/ Plugin/ search_api/ datasource/ TestDatasource.php
File
- src/
Datasource/ DatasourcePluginBase.php, line 39
Namespace
Drupal\search_api\DatasourceView source
abstract class DatasourcePluginBase extends IndexPluginBase implements DatasourceInterface {
/**
* {@inheritdoc}
*/
public function getPropertyDefinitions() {
return [];
}
/**
* {@inheritdoc}
*/
public function load($id) {
$items = $this
->loadMultiple([
$id,
]);
return $items ? reset($items) : NULL;
}
/**
* {@inheritdoc}
*/
public function loadMultiple(array $ids) {
return [];
}
/**
* {@inheritdoc}
*/
public function getItemLabel(ComplexDataInterface $item) {
return NULL;
}
/**
* {@inheritdoc}
*/
public function getItemBundle(ComplexDataInterface $item) {
return $this
->getPluginId();
}
/**
* {@inheritdoc}
*/
public function getItemLanguage(ComplexDataInterface $item) {
if ($item instanceof TranslatableInterface) {
return $item
->language()
->getId();
}
$item = $item
->getValue();
if ($item instanceof TranslatableInterface) {
return $item
->language()
->getId();
}
return Language::LANGCODE_NOT_SPECIFIED;
}
/**
* {@inheritdoc}
*/
public function getItemUrl(ComplexDataInterface $item) {
return NULL;
}
/**
* {@inheritdoc}
*/
public function checkItemAccess(ComplexDataInterface $item, AccountInterface $account = NULL) {
@trigger_error('\\Drupal\\search_api\\Datasource\\DatasourceInterface::checkItemAccess() is deprecated in search_api:8.x-1.14 and is removed from search_api:2.0.0. Use getItemAccessResult() instead. See https://www.drupal.org/node/3051902', E_USER_DEPRECATED);
return $this
->getItemAccessResult($item, $account)
->isAllowed();
}
/**
* {@inheritdoc}
*/
public function getItemAccessResult(ComplexDataInterface $item, AccountInterface $account = NULL) {
return AccessResult::allowed();
}
/**
* {@inheritdoc}
*/
public function getViewModes($bundle = NULL) {
return [];
}
/**
* {@inheritdoc}
*/
public function getBundles() {
return [
$this
->getPluginId() => $this
->label(),
];
}
/**
* {@inheritdoc}
*/
public function viewItem(ComplexDataInterface $item, $view_mode, $langcode = NULL) {
return [];
}
/**
* {@inheritdoc}
*/
public function viewMultipleItems(array $items, $view_mode, $langcode = NULL) {
$build = [];
foreach ($items as $key => $item) {
$build[$key] = $this
->viewItem($item, $view_mode, $langcode);
}
return $build;
}
/**
* {@inheritdoc}
*/
public function getEntityTypeId() {
return NULL;
}
/**
* {@inheritdoc}
*/
public function getItemIds($page = NULL) {
return NULL;
}
/**
* {@inheritdoc}
*/
public function canContainEntityReferences() : bool {
return FALSE;
}
/**
* {@inheritdoc}
*/
public function getAffectedItemsForEntityChange(EntityInterface $entity, array $foreign_entity_relationship_map, EntityInterface $original_entity = NULL) : array {
return [];
}
/**
* {@inheritdoc}
*/
public function getFieldDependencies(array $fields) {
return [];
}
/**
* {@inheritdoc}
*/
public function getListCacheContexts() {
return [];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigurablePluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
6 |
ConfigurablePluginBase:: |
protected | function | Calculates and adds dependencies of a specific plugin instance. | |
ConfigurablePluginBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
4 |
ConfigurablePluginBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
11 |
ConfigurablePluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
ConfigurablePluginBase:: |
public | function |
Returns the plugin's description. Overrides ConfigurablePluginInterface:: |
|
ConfigurablePluginBase:: |
protected | function | Calculates and returns dependencies of a specific plugin instance. | |
ConfigurablePluginBase:: |
public | function |
Returns the label for use on the administration pages. Overrides ConfigurablePluginInterface:: |
|
ConfigurablePluginBase:: |
protected | function | Wraps the module handler. | |
ConfigurablePluginBase:: |
public | function |
Informs the plugin that some of its dependencies are being removed. Overrides ConfigurablePluginInterface:: |
5 |
ConfigurablePluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
3 |
ConfigurablePluginBase:: |
protected | function | Wraps the theme handler. | |
DatasourceInterface:: |
public | function | Retrieves the unique ID of an object from this datasource. | 3 |
DatasourcePluginBase:: |
public | function |
Determines whether this datasource can contain entity references. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Checks whether a user has permission to view the given item. Overrides DatasourceInterface:: |
|
DatasourcePluginBase:: |
public | function |
Identifies items affected by a change to a referenced entity. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Retrieves the bundles associated to this datasource. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Retrieves the entity type ID of items from this datasource, if any. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Retrieves any dependencies of the given fields. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Checks whether a user has permission to view the given item. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Retrieves the item's bundle. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Returns a list of IDs of items from this datasource. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Retrieves a human-readable label for an item. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Retrieves the item's language. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Retrieves a URL at which the item can be viewed on the web. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Returns the list cache contexts associated with this datasource. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Retrieves the properties exposed by the underlying complex data type. Overrides DatasourceInterface:: |
2 |
DatasourcePluginBase:: |
public | function |
Returns the available view modes for this datasource. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Loads an item. Overrides DatasourceInterface:: |
|
DatasourcePluginBase:: |
public | function |
Loads multiple items. Overrides DatasourceInterface:: |
2 |
DatasourcePluginBase:: |
public | function |
Returns the render array for the provided item and view mode. Overrides DatasourceInterface:: |
1 |
DatasourcePluginBase:: |
public | function |
Returns the render array for the provided items and view mode. Overrides DatasourceInterface:: |
1 |
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 | |
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. | |
HideablePluginBase:: |
public | function |
Determines whether this plugin should be hidden in the UI. Overrides HideablePluginInterface:: |
1 |
IndexPluginBase:: |
protected | property | The index this processor is configured for. | |
IndexPluginBase:: |
public | function |
Retrieves the index this plugin is configured for. Overrides IndexPluginInterface:: |
|
IndexPluginBase:: |
public | function |
Sets the index this plugin is configured for. Overrides IndexPluginInterface:: |
|
IndexPluginBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides ConfigurablePluginBase:: |
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. | |
PluginDependencyTrait:: |
protected | function | Calculates and adds dependencies of a specific plugin instance. Aliased as: traitCalculatePluginDependencies | 1 |
PluginDependencyTrait:: |
protected | function | Calculates and returns dependencies of a specific plugin instance. Aliased as: traitGetPluginDependencies | |
PluginDependencyTrait:: |
protected | function | Wraps the module handler. Aliased as: traitModuleHandler | 1 |
PluginDependencyTrait:: |
protected | function | Wraps the theme handler. Aliased as: traitThemeHandler | 1 |
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. |