protected function ImageToolkitOperationManager::getToolkitOperationPluginId in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/ImageToolkit/ImageToolkitOperationManager.php \Drupal\Core\ImageToolkit\ImageToolkitOperationManager::getToolkitOperationPluginId()
- 9 core/lib/Drupal/Core/ImageToolkit/ImageToolkitOperationManager.php \Drupal\Core\ImageToolkit\ImageToolkitOperationManager::getToolkitOperationPluginId()
Returns the plugin ID for a given toolkit and operation.
Parameters
\Drupal\Core\ImageToolkit\ImageToolkitInterface $toolkit: The toolkit instance.
string $operation: The operation (e.g. "crop").
Return value
string The plugin ID.
Throws
\Drupal\Component\Plugin\Exception\PluginNotFoundException When no plugin is available.
1 call to ImageToolkitOperationManager::getToolkitOperationPluginId()
- ImageToolkitOperationManager::getToolkitOperation in core/
lib/ Drupal/ Core/ ImageToolkit/ ImageToolkitOperationManager.php - Returns a toolkit operation plugin instance.
File
- core/
lib/ Drupal/ Core/ ImageToolkit/ ImageToolkitOperationManager.php, line 75
Class
- ImageToolkitOperationManager
- Manages toolkit operation plugins.
Namespace
Drupal\Core\ImageToolkitCode
protected function getToolkitOperationPluginId(ImageToolkitInterface $toolkit, $operation) {
$toolkit_id = $toolkit
->getPluginId();
$definitions = $this
->getDefinitions();
$definitions = array_filter($definitions, function ($definition) use ($toolkit_id, $operation) {
return $definition['toolkit'] == $toolkit_id && $definition['operation'] == $operation;
});
if (!$definitions) {
// If this image toolkit plugin is a derivative and returns no operation,
// try once again with its base plugin.
$base_toolkit_id = $toolkit
->getBaseId();
if ($toolkit_id != $base_toolkit_id && !empty($base_toolkit_id)) {
$base_toolkit = $this->toolkitManager
->createInstance($base_toolkit_id);
return $this
->getToolkitOperationPluginId($base_toolkit, $operation);
}
$message = new FormattableMarkup("No image operation plugin for '@toolkit' toolkit and '@operation' operation.", [
'@toolkit' => $toolkit_id,
'@operation' => $operation,
]);
throw new PluginNotFoundException($toolkit_id . '.' . $operation, $message);
}
else {
// Pickup the first plugin found.
// @todo In https://www.drupal.org/node/2110591 we'll return here the UI
// selected plugin or the first found if missed.
$definition = reset($definitions);
return $definition['id'];
}
}