function D
$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'
];
}