public static function ConfigSplitIgnoreFilter::create in Configuration Split Ignore 8
Creates an instance of the plugin.
Parameters
\Symfony\Component\DependencyInjection\ContainerInterface $container: The container to pull out services used in the plugin.
array $configuration: A configuration array containing information about the plugin instance.
string $plugin_id: The plugin ID for the plugin instance.
mixed $plugin_definition: The plugin implementation definition.
Return value
static Returns an instance of this plugin.
Overrides IgnoreFilter::create
File
- src/
Plugin/ ConfigFilter/ ConfigSplitIgnoreFilter.php, line 26
Class
- ConfigSplitIgnoreFilter
- Provides a ignore filter that allows to delete the configuration entities.
Namespace
Drupal\config_split_ignore\Plugin\ConfigFilterCode
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
/** @var \Drupal\Core\Entity\EntityStorageInterface $entity_storage */
$entity_storage = $container
->get('entity_type.manager')
->getStorage('config_split');
/** @var \Drupal\Core\Config\ConfigFactoryInterface $config_factory */
$config_factory = $container
->get('config.factory');
// Load the list of ignored entities from enabled splits.
$ignored = [];
/** @var \Drupal\Core\Config\Entity\ConfigEntityInterface $config_split */
foreach ($entity_storage
->loadMultiple() as $config_split) {
$config_name = $config_split
->getConfigDependencyName();
$config = $config_factory
->get($config_name);
if (!empty($config
->get('status'))) {
$ignored = array_merge($ignored, $config_split
->getThirdPartySetting('config_split_ignore', 'entities', []));
}
}
$ignored = array_unique($ignored);
// Allow modules to alter the list of ignored entities.
$container
->get('module_handler')
->invokeAll('config_split_ignore_settings_alter', [
&$ignored,
]);
// Set the list in the plugin configuration.
$configuration['ignored'] = array_unique($ignored);
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('config.storage'));
}