search_api_autocomplete-8.x-1.x-dev/src/Plugin/PluginBase.php
src/Plugin/PluginBase.php
<?php namespace Drupal\search_api_autocomplete\Plugin; use Drupal\search_api\Plugin\ConfigurablePluginBase; use Drupal\search_api_autocomplete\SearchInterface; /** * Provides a common base class for autocomplete search plugins. */ abstract class PluginBase extends ConfigurablePluginBase implements PluginInterface { /** * The search this suggester is attached to. * * @var \Drupal\search_api_autocomplete\SearchInterface */ protected $search; /** * Constructs a SearchPluginBase object. * * @param array $configuration * An associative array containing the plugin's configuration, if any. The * "#search" key should contain the plugin's autocomplete search entity. * @param string $plugin_id * The plugin's ID. * @param array $plugin_definition * The plugin's definition. */ public function __construct(array $configuration, $plugin_id, array $plugin_definition) { if (!empty($configuration['#search']) && $configuration['#search'] instanceof SearchInterface) { $this->setSearch($configuration['#search']); unset($configuration['#search']); } parent::__construct($configuration, $plugin_id, $plugin_definition); } /** * {@inheritdoc} */ public function getSearch() { return $this->search; } /** * {@inheritdoc} */ public function setSearch(SearchInterface $search) { $this->search = $search; return $this; } }