class ImageEffectBase

Same name and namespace in other branches
  1. 11.x core/modules/image/src/ImageEffectBase.php \Drupal\image\ImageEffectBase
  2. 10 core/modules/image/src/ImageEffectBase.php \Drupal\image\ImageEffectBase
  3. 9 core/modules/image/src/ImageEffectBase.php \Drupal\image\ImageEffectBase
  4. 8.9.x core/modules/image/src/ImageEffectBase.php \Drupal\image\ImageEffectBase

Provides a base class for image effects.

Hierarchy

Expanded class hierarchy of ImageEffectBase

See also

\Drupal\image\Annotation\ImageEffect

\Drupal\image\ImageEffectInterface

\Drupal\image\ConfigurableImageEffectInterface

\Drupal\image\ConfigurableImageEffectBase

\Drupal\image\ImageEffectManager

Plugin API

5 files declare their use of ImageEffectBase
DesaturateImageEffect.php in core/modules/image/src/Plugin/ImageEffect/DesaturateImageEffect.php
ImageStyleTest.php in core/modules/image/tests/src/Unit/ImageStyleTest.php
MigrateImageStylesTest.php in core/modules/image/tests/src/Kernel/Migrate/d7/MigrateImageStylesTest.php
NullTestImageEffect.php in core/modules/image/tests/modules/image_module_test/src/Plugin/ImageEffect/NullTestImageEffect.php
UriDependentTestImageEffect.php in core/modules/image/tests/modules/image_module_test/src/Plugin/ImageEffect/UriDependentTestImageEffect.php

File

core/modules/image/src/ImageEffectBase.php, line 21

Namespace

Drupal\image
View source
abstract class ImageEffectBase extends ConfigurablePluginBase implements ImageEffectInterface, ContainerFactoryPluginInterface {
  
  /**
   * The image effect ID.
   *
   * @var string
   */
  protected $uuid;
  
  /**
   * The weight of the image effect.
   *
   * @var int|string
   */
  protected $weight = '';
  
  /**
   * A logger instance.
   *
   * @var \Psr\Log\LoggerInterface
   */
  protected $logger;
  
  /**
   * {@inheritdoc}
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition, #[Autowire(service: 'logger.channel.image')] LoggerInterface $logger) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->logger = $logger;
  }
  
  /**
   * {@inheritdoc}
   */
  public function transformDimensions(array &$dimensions, $uri) {
    // Most image effects will not change the dimensions. This base
    // implementation represents this behavior. Override this method if your
    // image effect does change the dimensions.
  }
  
  /**
   * {@inheritdoc}
   */
  public function getDerivativeExtension($extension) {
    // Most image effects will not change the extension. This base
    // implementation represents this behavior. Override this method if your
    // image effect does change the extension.
    return $extension;
  }
  
  /**
   * {@inheritdoc}
   */
  public function getSummary() {
    return [
      '#markup' => '',
      '#effect' => [
        'id' => $this->pluginDefinition['id'],
        'label' => $this->label(),
        'description' => $this->pluginDefinition['description'],
      ],
    ];
  }
  
  /**
   * {@inheritdoc}
   */
  public function label() {
    return $this->pluginDefinition['label'];
  }
  
  /**
   * {@inheritdoc}
   */
  public function getUuid() {
    return $this->uuid;
  }
  
  /**
   * {@inheritdoc}
   */
  public function setWeight($weight) {
    $this->weight = $weight;
    return $this;
  }
  
  /**
   * {@inheritdoc}
   */
  public function getWeight() {
    return $this->weight;
  }
  
  /**
   * {@inheritdoc}
   */
  public function getConfiguration() {
    return [
      'uuid' => $this->getUuid(),
      'id' => $this->getPluginId(),
      'weight' => $this->getWeight(),
      'data' => $this->configuration,
    ];
  }
  
  /**
   * {@inheritdoc}
   */
  public function setConfiguration(array $configuration) {
    $configuration += [
      'data' => [],
      'uuid' => '',
      'weight' => '',
    ];
    $this->configuration = $configuration['data'] + $this->defaultConfiguration();
    $this->uuid = $configuration['uuid'];
    $this->weight = $configuration['weight'];
    return $this;
  }
  
  /**
   * {@inheritdoc}
   */
  public function calculateDependencies() {
    return [];
  }
  
  /**
   * {@inheritdoc}
   */
  public function onCollectionDependencyRemoval(array $dependencies) : RemovableDependentPluginReturn {
    // If the module that provides the image effect plugin is uninstalled,
    // the plugin instance should be removed from the collection.
    return in_array($this->getPluginDefinition()['provider'], $dependencies['module'] ?? []) ? RemovableDependentPluginReturn::Remove : RemovableDependentPluginReturn::Unchanged;
  }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
AutowiredInstanceTrait::createInstanceAutowired public static function Instantiates a new instance of the implementing class using autowiring.
AutowiredInstanceTrait::getAutowireArguments private static function Resolves arguments for a method using autowiring.
ConfigurableTrait::$configuration protected property Configuration information passed into the plugin.
ConfigurableTrait::defaultConfiguration public function Gets default configuration for this plugin. 15
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 2
DependencySerializationTrait::__wakeup public function 2
ImageEffectBase::$logger protected property A logger instance.
ImageEffectBase::$uuid protected property The image effect ID.
ImageEffectBase::$weight protected property The weight of the image effect.
ImageEffectBase::calculateDependencies public function Overrides DependentPluginInterface::calculateDependencies
ImageEffectBase::getConfiguration public function Overrides ConfigurableTrait::getConfiguration
ImageEffectBase::getDerivativeExtension public function Overrides ImageEffectInterface::getDerivativeExtension 1
ImageEffectBase::getSummary public function Overrides ImageEffectInterface::getSummary 3
ImageEffectBase::getUuid public function Overrides ImageEffectInterface::getUuid
ImageEffectBase::getWeight public function Overrides ImageEffectInterface::getWeight
ImageEffectBase::label public function Overrides ImageEffectInterface::label
ImageEffectBase::onCollectionDependencyRemoval public function Overrides RemovableDependentPluginInterface::onCollectionDependencyRemoval
ImageEffectBase::setConfiguration public function Overrides ConfigurableTrait::setConfiguration
ImageEffectBase::setWeight public function Overrides ImageEffectInterface::setWeight
ImageEffectBase::transformDimensions public function Overrides ImageEffectInterface::transformDimensions 4
ImageEffectBase::__construct public function Overrides ConfigurablePluginBase::__construct
ImageEffectInterface::applyEffect public function Applies an image effect to the image object. 7
MessengerTrait::$messenger protected property The messenger. 25
MessengerTrait::messenger public function Gets the messenger. 25
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin ID.
PluginBase::create public static function Instantiates a new instance of the implementing class using autowiring. 64
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Overrides PluginInspectionInterface::getPluginDefinition 2
PluginBase::getPluginId public function Overrides PluginInspectionInterface::getPluginId
StringTranslationTrait::$stringTranslation protected property The string translation service. 3
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language. 1

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.