ConditionCreatorManager.php in Block Visibility Groups 8
File
block_visibility_groups_admin/src/ConditionCreatorManager.php
View source
<?php
namespace Drupal\block_visibility_groups_admin;
use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Plugin\DefaultPluginManager;
use Drupal\Core\Routing\RouteMatch;
class ConditionCreatorManager extends DefaultPluginManager {
public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
parent::__construct('Plugin/ConditionCreator', $namespaces, $module_handler, 'Drupal\\block_visibility_groups_admin\\Plugin\\ConditionCreatorInterface', 'Drupal\\block_visibility_groups_admin\\Annotation\\ConditionCreator');
$this
->alterInfo('block_visibility_condition_creator');
$this
->setCacheBackend($cache_backend, 'block_visibility_groups_admin:creator');
}
public function createInstance($plugin_id, array $configuration = []) {
if (empty($configuration['route_name'])) {
throw new \Exception('Route name is require configuration for GroupCreatorManager');
}
$route_name = $configuration['route_name'];
$route_provider = \Drupal::getContainer()
->get('router.route_provider');
$configuration['route'] = new RouteMatch($route_name, $route_provider
->getRouteByName($route_name));
unset($configuration['route_name']);
return parent::createInstance($plugin_id, $configuration);
}
}