class EntityClone
@internal This API is experimental.
Hierarchy
- class \Drupal\Core\Config\Action\Plugin\ConfigAction\EntityClone implements \Drupal\Core\Config\Action\ConfigActionPluginInterface, \Drupal\Core\Plugin\ContainerFactoryPluginInterface
Expanded class hierarchy of EntityClone
File
-
core/
lib/ Drupal/ Core/ Config/ Action/ Plugin/ ConfigAction/ EntityClone.php, line 20
Namespace
Drupal\Core\Config\Action\Plugin\ConfigActionView source
final class EntityClone implements ConfigActionPluginInterface, ContainerFactoryPluginInterface {
public function __construct(ConfigManagerInterface $configManager, ConfigActionManager $configActionManager) {
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) : static {
return new static($container->get(ConfigManagerInterface::class), $container->get('plugin.manager.config_action'));
}
/**
* {@inheritdoc}
*/
public function apply(string $configName, mixed $duplicate_id) : void {
assert(is_string($duplicate_id));
// If the original doesn't exist, there's nothing to clone.
$original = $this->configManager
->loadConfigEntityByName($configName);
if (empty($original)) {
throw new ConfigActionException("Cannot clone '{$configName}' because it does not exist.");
}
$clone = $original->createDuplicate();
$clone->set($original->getEntityType()
->getKey('id'), $duplicate_id);
// Use the config action manager to invoke the `entity_create` action on
// the clone, so that it will be validated.
$this->configActionManager
->applyAction('entity_create:createIfNotExists', $clone->getConfigDependencyName(), $clone->toArray());
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
EntityClone::apply | public | function | Applies the config action. | Overrides ConfigActionPluginInterface::apply |
EntityClone::create | public static | function | Creates an instance of the plugin. | Overrides ContainerFactoryPluginInterface::create |
EntityClone::__construct | public | function |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.