ImageToolkitOperation.php 2.29 KB
Newer Older
1 2 3 4 5 6 7 8 9
<?php

namespace Drupal\Core\ImageToolkit\Annotation;

use Drupal\Component\Annotation\Plugin;

/**
 * Defines a Plugin annotation object for the image toolkit operation plugin.
 *
10 11 12 13 14 15 16 17
 * An image toolkit operation plugin provides a self-contained image
 * manipulation routine, for a specific image toolkit. Examples of image
 * toolkit operations are scaling, cropping, rotating, etc.
 *
 * Plugin namespace: Plugin\ImageToolkit\Operation
 *
 * For a working example, see
 * \Drupal\system\Plugin\ImageToolkit\Operation\gd\Crop
18
 *
19 20 21 22
 * @see \Drupal\Core\ImageToolkit\Annotation\ImageToolkit
 * @see \Drupal\image\Annotation\ImageEffect
 * @see \Drupal\Core\ImageToolkit\ImageToolkitOperationInterface
 * @see \Drupal\Core\ImageToolkit\ImageToolkitOperationBase
23
 * @see \Drupal\Core\ImageToolkit\ImageToolkitOperationManager
24 25 26
 * @see plugin_api
 *
 * @Annotation
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
 */
class ImageToolkitOperation extends Plugin {

  /**
   * The plugin ID.
   *
   * There are no strict requirements as to the string to be used to identify
   * the plugin, since discovery of the appropriate operation plugin to be
   * used to apply an operation is based on the values of the 'toolkit' and
   * the 'operation' annotation values.
   *
   * However, it is recommended that the following patterns be used:
   * - '{toolkit}_{operation}' for the first implementation of an operation
   *   by a toolkit.
   * - '{module}_{toolkit}_{operation}' for overrides of existing
   *   implementations supplied by an alternative module, and for new
   *   module-supplied operations.
   *
   * @var string
   */
  public $id;

  /**
   * The id of the image toolkit plugin for which the operation is implemented.
   *
   * @var string
   */
  public $toolkit;

  /**
   * The machine name of the image toolkit operation implemented (e.g. "crop").
   *
   * @var string
   */
  public $operation;

  /**
   * The human-readable name of the image toolkit operation.
   *
66
   * The string should be wrapped in @Translation().
67 68 69 70 71 72 73 74 75 76
   *
   * @ingroup plugin_translatable
   *
   * @var \Drupal\Core\Annotation\Translation
   */
  public $label;

  /**
   * The description of the image toolkit operation.
   *
77
   * The string should be wrapped in @Translation().
78 79 80 81 82 83 84 85
   *
   * @ingroup plugin_translatable
   *
   * @var \Drupal\Core\Annotation\Translation
   */
  public $description;

}