reviewer-1.2.x-dev/src/Plugin/ReviewPluginManager.php

src/Plugin/ReviewPluginManager.php
<?php

declare(strict_types=1);

namespace Drupal\reviewer\Plugin;

use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Plugin\DefaultPluginManager;
use Drupal\reviewer\Attribute\Review;
use Drupal\reviewer\Plugin\reviewer\Review\ReviewPluginInterface;

/**
 * Creates review plugins.
 *
 * @method \Drupal\reviewer\Plugin\reviewer\Review\ReviewPluginInterface createInstance(string $plugin_id, string[] $configuration = [])
 * @method string[] getDefinition(string $plugin_id, bool $exception_on_invalid = TRUE)
 * @method string[][] getDefinitions()
 */
final class ReviewPluginManager extends DefaultPluginManager implements ReviewManagerInterface {

  /**
   * @param \Traversable<string> $namespaces
   * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
   */
  public function __construct(
    \Traversable $namespaces,
    CacheBackendInterface $cache_backend,
    ModuleHandlerInterface $module_handler,
  ) {
    parent::__construct(
      'Plugin/reviewer/Review',
      $namespaces,
      $module_handler,
      ReviewPluginInterface::class,
      Review::class,
    );
    $this->setCacheBackend($cache_backend, 'reviewer_review_plugins');
    $this->alterInfo('reviewer_review');
  }

  /**
   * {@inheritdoc}
   *
   * @throws \Drupal\Component\Plugin\Exception\PluginException
   */
  public function createAllInstances(): array {
    return array_map(
      fn(array $definition) => $this->createInstance($definition['id'], $definition),
      $this->getDefinitions(),
    );
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc