3 namespace Drupal\search\Plugin;
5 use Drupal\Core\Plugin\DefaultSingleLazyPluginCollection;
6 use Drupal\Component\Plugin\PluginManagerInterface;
9 * Provides a container for lazily loading search plugins.
11 class SearchPluginCollection extends DefaultSingleLazyPluginCollection {
14 * The unique ID for the search page using this plugin collection.
18 protected $searchPageId;
21 * Constructs a new SearchPluginCollection.
23 * @param \Drupal\Component\Plugin\PluginManagerInterface $manager
24 * The manager to be used for instantiating plugins.
25 * @param string $instance_id
26 * The ID of the plugin instance.
27 * @param array $configuration
28 * An array of configuration.
29 * @param string $search_page_id
30 * The unique ID of the search page using this plugin.
32 public function __construct(PluginManagerInterface $manager, $instance_id, array $configuration, $search_page_id) {
33 parent::__construct($manager, $instance_id, $configuration);
35 $this->searchPageId = $search_page_id;
41 * @return \Drupal\search\Plugin\SearchInterface
43 public function &get($instance_id) {
44 return parent::get($instance_id);
50 protected function initializePlugin($instance_id) {
51 parent::initializePlugin($instance_id);
53 $plugin_instance = $this->pluginInstances[$instance_id];
54 if ($plugin_instance instanceof ConfigurableSearchPluginInterface) {
55 $plugin_instance->setSearchPageId($this->searchPageId);