Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / search / src / Plugin / SearchPluginCollection.php
1 <?php
2
3 namespace Drupal\search\Plugin;
4
5 use Drupal\Core\Plugin\DefaultSingleLazyPluginCollection;
6 use Drupal\Component\Plugin\PluginManagerInterface;
7
8 /**
9  * Provides a container for lazily loading search plugins.
10  */
11 class SearchPluginCollection extends DefaultSingleLazyPluginCollection {
12
13   /**
14    * The unique ID for the search page using this plugin collection.
15    *
16    * @var string
17    */
18   protected $searchPageId;
19
20   /**
21    * Constructs a new SearchPluginCollection.
22    *
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.
31    */
32   public function __construct(PluginManagerInterface $manager, $instance_id, array $configuration, $search_page_id) {
33     parent::__construct($manager, $instance_id, $configuration);
34
35     $this->searchPageId = $search_page_id;
36   }
37
38   /**
39    * {@inheritdoc}
40    *
41    * @return \Drupal\search\Plugin\SearchInterface
42    */
43   public function &get($instance_id) {
44     return parent::get($instance_id);
45   }
46
47   /**
48    * {@inheritdoc}
49    */
50   protected function initializePlugin($instance_id) {
51     parent::initializePlugin($instance_id);
52
53     $plugin_instance = $this->pluginInstances[$instance_id];
54     if ($plugin_instance instanceof ConfigurableSearchPluginInterface) {
55       $plugin_instance->setSearchPageId($this->searchPageId);
56     }
57   }
58
59 }