class ImageEffectBase
Same name in other branches
- 9 core/modules/image/src/ImageEffectBase.php \Drupal\image\ImageEffectBase
- 8.9.x core/modules/image/src/ImageEffectBase.php \Drupal\image\ImageEffectBase
- 10 core/modules/image/src/ImageEffectBase.php \Drupal\image\ImageEffectBase
Provides a base class for image effects.
Hierarchy
- class \Drupal\image\ImageEffectBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\image\ImageEffectInterface, \Drupal\Core\Plugin\ContainerFactoryPluginInterface
Expanded class hierarchy of ImageEffectBase
See also
\Drupal\image\Annotation\ImageEffect
\Drupal\image\ImageEffectInterface
\Drupal\image\ConfigurableImageEffectInterface
\Drupal\image\ConfigurableImageEffectBase
\Drupal\image\ImageEffectManager
4 files declare their use of ImageEffectBase
- DesaturateImageEffect.php in core/
modules/ image/ src/ Plugin/ ImageEffect/ DesaturateImageEffect.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 20
Namespace
Drupal\imageView source
abstract class ImageEffectBase extends PluginBase 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, LoggerInterface $logger) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->setConfiguration($configuration);
$this->logger = $logger;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container->get('logger.factory')
->get('image'));
}
/**
* {@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 defaultConfiguration() {
return [];
}
/**
* {@inheritdoc}
*/
public function calculateDependencies() {
return [];
}
}
Members
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.