'', // The {{ plugin_type }} label. 'label' => '', // The {{ plugin_type }} description. 'description' => '', // Default plugin class. 'class' => 'Drupal\{{ machine_name }}\{{ class_prefix }}Default', ]; /** * Constructs {{ class_prefix }}PluginManager object. * * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler * The module handler to invoke the alter hook with. * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend * Cache backend instance to use. */ public function __construct(ModuleHandlerInterface $module_handler, CacheBackendInterface $cache_backend) { $this->factory = new ContainerFactory($this); $this->moduleHandler = $module_handler; $this->alterInfo('{{ plugin_type }}_info'); $this->setCacheBackend($cache_backend, '{{ plugin_type }}_plugins'); } /** * {@inheritdoc} */ protected function getDiscovery() { if (!isset($this->discovery)) { $this->discovery = new YamlDiscovery('{{ plugin_type|plural }}', $this->moduleHandler->getModuleDirectories()); $this->discovery->addTranslatableProperty('label', 'label_context'); $this->discovery->addTranslatableProperty('description', 'description_context'); } return $this->discovery; } }