You are here

protected function ImageToolkitOperationManager::getToolkitOperationPluginId in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/ImageToolkit/ImageToolkitOperationManager.php \Drupal\Core\ImageToolkit\ImageToolkitOperationManager::getToolkitOperationPluginId()

Returns the plugin ID for a given toolkit and operation.

Parameters

string $toolkit_id: The toolkit plugin ID.

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 70
Contains \Drupal\Core\ImageToolkit\ImageToolkitOperationManager.

Class

ImageToolkitOperationManager
Manages toolkit operation plugins.

Namespace

Drupal\Core\ImageToolkit

Code

protected function getToolkitOperationPluginId($toolkit_id, $operation) {
  $definitions = $this
    ->getDefinitions();
  $definitions = array_filter($definitions, function ($definition) use ($toolkit_id, $operation) {
    return $definition['toolkit'] == $toolkit_id && $definition['operation'] == $operation;
  });
  if (!$definitions) {
    $message = SafeMarkup::format("No image operation plugin for '@toolkit' toolkit and '@operation' operation.", array(
      '@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'];
  }
}