class ImageToolkitOperationManager extends DefaultPluginManager implements ImageToolkitOperationManagerInterface (View source)

Manages toolkit operation plugins.

Traits

Provides methods to use a cache backend while respecting a 'use caches' flag.

Properties

protected DiscoveryInterface $discovery

The object that discovers plugins managed by this manager.

from  PluginManagerBase
protected FactoryInterface $factory

The object that instantiates plugins managed by this manager.

from  PluginManagerBase
protected MapperInterface|null $mapper

The object that returns the preconfigured plugin instance appropriate for a particular runtime condition.

from  PluginManagerBase
protected array $definitions

Cached definitions array.

from  DiscoveryCachedTrait
protected CacheBackendInterface $cacheBackend

Cache backend instance.

from  UseCacheBackendTrait
protected bool $useCaches

Flag whether caches should be used or skipped.

from  UseCacheBackendTrait
protected string $cacheKey

The cache key.

from  DefaultPluginManager
protected array $cacheTags

An array of cache tags to use for the cached definitions.

from  DefaultPluginManager
protected string $alterHook

Name of the alter hook if one should be invoked.

from  DefaultPluginManager
protected string|bool $subdir

The subdirectory within a namespace to look for plugins, or FALSE if the plugins are in the top level of the namespace.

from  DefaultPluginManager
protected ModuleHandlerInterface $moduleHandler

The module handler to invoke the alter hook.

from  DefaultPluginManager
protected array $defaults

A set of defaults to be referenced by $this->processDefinition() if additional processing of plugins is necessary or helpful for development purposes.

from  DefaultPluginManager
protected string $pluginDefinitionAnnotationName

The name of the annotation that contains the plugin definition.

from  DefaultPluginManager
protected string|null $pluginInterface

The interface each plugin should implement.

from  DefaultPluginManager
protected Traversable $namespaces

An object that implements \Traversable which contains the root paths keyed by the corresponding namespace to look for plugin implementations.

from  DefaultPluginManager
protected string[] $additionalAnnotationNamespaces

Additional namespaces the annotation discovery mechanism should scan for annotation definitions.

from  DefaultPluginManager
protected LoggerInterface $logger

A logger instance.

protected ImageToolkitManager $toolkitManager

The image toolkit manager.

Methods

getDefinitions()

{@inheritdoc}

getDefinition($plugin_id, $exception_on_invalid = TRUE)

{@inheritdoc}

array|null
doGetDefinition(array $definitions, string $plugin_id, bool $exception_on_invalid)

Gets a specific plugin definition.

hasDefinition($plugin_id)

{@inheritdoc}

getDiscovery()

Gets the plugin discovery.

getFactory()

Gets the plugin factory.

object
createInstance(string $plugin_id, array $configuration = [], ImageToolkitInterface $toolkit = NULL)

Creates a pre-configured instance of a plugin.

object
handlePluginNotFound(string $plugin_id, array $configuration)

Allows plugin managers to specify custom behavior if a plugin is not found.

object|false
getInstance(array $options)

Gets a preconfigured instance of a plugin.

object|false
cacheGet(string $cid)

Fetches from the cache backend, respecting the use caches flag.

cacheSet(string $cid, mixed $data, int $expire = Cache::PERMANENT, array $tags = [])

Stores data in the persistent cache, respecting the use caches flag.

__construct(Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, LoggerInterface $logger, ImageToolkitManager $toolkit_manager)

Constructs the ImageToolkitOperationManager object.

setCacheBackend(CacheBackendInterface $cache_backend, string $cache_key, array $cache_tags = [])

Initialize the cache backend.

alterInfo(string $alter_hook)

Sets the alter hook name.

clearCachedDefinitions()

Clears static and persistent plugin definition caches.

array|null
getCachedDefinitions()

Returns the cached plugin definitions of the decorated discovery class.

setCachedDefinitions(array $definitions)

Sets a cache of plugin definitions for the decorated discovery class.

useCaches(bool $use_caches = FALSE)

Disable the use of caches.

processDefinition($definition, $plugin_id)

Performs extra processing on plugin definitions.

array
findDefinitions()

Finds plugin definitions.

string|null
extractProviderFromDefinition(mixed $plugin_definition)

Extracts the provider from a plugin definition.

alterDefinitions($definitions)

Invokes the hook to alter the definitions if the alter hook is set.

bool
providerExists($provider)

Determines if the provider of a definition exists.

string[]
getCacheContexts()

The cache contexts associated with this object.

string[]
getCacheTags()

The cache tags associated with this object.

int
getCacheMaxAge()

The maximum age for which this object may be cached.

string
getToolkitOperationPluginId(ImageToolkitInterface $toolkit, string $operation)

Returns the plugin ID for a given toolkit and operation.

getToolkitOperation(ImageToolkitInterface $toolkit, string $operation)

Returns a toolkit operation plugin instance.

Details

abstract getDefinitions()

{@inheritdoc}

getDefinition($plugin_id, $exception_on_invalid = TRUE)

{@inheritdoc}

Parameters

$plugin_id
$exception_on_invalid

protected array|null doGetDefinition(array $definitions, string $plugin_id, bool $exception_on_invalid)

Gets a specific plugin definition.

Parameters

array $definitions

An array of the available plugin definitions.

string $plugin_id

A plugin id.

bool $exception_on_invalid

If TRUE, an invalid plugin ID will cause an exception to be thrown; if FALSE, NULL will be returned.

Return Value

array|null

A plugin definition, or NULL if the plugin ID is invalid and $exception_on_invalid is TRUE.

Exceptions

PluginNotFoundException

hasDefinition($plugin_id)

{@inheritdoc}

Parameters

$plugin_id

protected DiscoveryInterface getDiscovery()

Gets the plugin discovery.

Return Value

DiscoveryInterface

protected FactoryInterface getFactory()

Gets the plugin factory.

Return Value

FactoryInterface

object createInstance(string $plugin_id, array $configuration = [], ImageToolkitInterface $toolkit = NULL)

Creates a pre-configured instance of a plugin.

Parameters

string $plugin_id

The ID of the plugin being instantiated.

array $configuration

An array of configuration relevant to the plugin instance.

ImageToolkitInterface $toolkit

Return Value

object

A fully configured plugin instance.

Exceptions

PluginException

protected object handlePluginNotFound(string $plugin_id, array $configuration)

Allows plugin managers to specify custom behavior if a plugin is not found.

Parameters

string $plugin_id

The ID of the missing requested plugin.

array $configuration

An array of configuration relevant to the plugin instance.

Return Value

object

A fallback plugin instance.

object|false getInstance(array $options)

Gets a preconfigured instance of a plugin.

Parameters

array $options

An array of options that can be used to determine a suitable plugin to instantiate and how to configure it.

Return Value

object|false

A fully configured plugin instance. The interface of the plugin instance will depend on the plugin type. If no instance can be retrieved, FALSE will be returned.

protected object|false cacheGet(string $cid)

Fetches from the cache backend, respecting the use caches flag.

Parameters

string $cid

The cache ID of the data to retrieve.

Return Value

object|false

The cache item or FALSE on failure.

See also

CacheBackendInterface::get

protected cacheSet(string $cid, mixed $data, int $expire = Cache::PERMANENT, array $tags = [])

Stores data in the persistent cache, respecting the use caches flag.

Parameters

string $cid

The cache ID of the data to store.

mixed $data

The data to store in the cache. Some storage engines only allow objects up to a maximum of 1MB in size to be stored by default. When caching large arrays or similar, take care to ensure $data does not exceed this size.

int $expire

One of the following values:

  • CacheBackendInterface::CACHE_PERMANENT: Indicates that the item should not be removed unless it is deleted explicitly.
  • A Unix timestamp: Indicates that the item will be considered invalid after this time, i.e. it will not be returned by get() unless $allow_invalid has been set to TRUE. When the item has expired, it may be permanently deleted by the garbage collector at any time.
array $tags

An array of tags to be stored with the cache item. These should normally identify objects used to build the cache item, which should trigger cache invalidation when updated. For example if a cached item represents a node, both the node ID and the author's user ID might be passed in as tags. For example array('node' => array(123), 'user' => array(92)).

See also

CacheBackendInterface::set

__construct(Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, LoggerInterface $logger, ImageToolkitManager $toolkit_manager)

Constructs the ImageToolkitOperationManager object.

Parameters

Traversable $namespaces

An object that implements \Traversable which contains the root paths keyed by the corresponding namespace to look for plugin implementations.

CacheBackendInterface $cache_backend

Cache backend instance to use.

ModuleHandlerInterface $module_handler

The module handler.

LoggerInterface $logger

A logger instance.

ImageToolkitManager $toolkit_manager

The image toolkit manager.

setCacheBackend(CacheBackendInterface $cache_backend, string $cache_key, array $cache_tags = [])

Initialize the cache backend.

Plugin definitions are cached using the provided cache backend.

Parameters

CacheBackendInterface $cache_backend

Cache backend instance to use.

string $cache_key

Cache key prefix to use.

array $cache_tags

(optional) When providing a list of cache tags, the cached plugin definitions are tagged with the provided cache tags. These cache tags can then be used to clear the corresponding cached plugin definitions. Note that this should be used with care! For clearing all cached plugin definitions of a plugin manager, call that plugin manager's clearCachedDefinitions() method. Only use cache tags when cached plugin definitions should be cleared along with other, related cache entries.

protected alterInfo(string $alter_hook)

Sets the alter hook name.

Parameters

string $alter_hook

Name of the alter hook; for example, to invoke hook_mymodule_data_alter() pass in "mymodule_data".

clearCachedDefinitions()

Clears static and persistent plugin definition caches.

Don't resort to calling \Drupal::cache()->delete() and friends to make Drupal detect new or updated plugin definitions. Always use this method on the appropriate plugin type's plugin manager!

protected array|null getCachedDefinitions()

Returns the cached plugin definitions of the decorated discovery class.

Return Value

array|null

On success this will return an array of plugin definitions. On failure this should return NULL, indicating to other methods that this has not yet been defined. Success with no values should return as an empty array and would actually be returned by the getDefinitions() method.

protected setCachedDefinitions(array $definitions)

Sets a cache of plugin definitions for the decorated discovery class.

Parameters

array $definitions

List of definitions to store in cache.

useCaches(bool $use_caches = FALSE)

Disable the use of caches.

Can be used to ensure that uncached plugin definitions are returned, without invalidating all cached information.

This will also remove all local/static caches.

Parameters

bool $use_caches

FALSE to not use any caches.

processDefinition($definition, $plugin_id)

Performs extra processing on plugin definitions.

By default we add defaults for the type to the definition. If a type has additional processing logic they can do that by replacing or extending the method.

Parameters

$definition
$plugin_id

protected array findDefinitions()

Finds plugin definitions.

Return Value

array

List of definitions to store in cache.

protected string|null extractProviderFromDefinition(mixed $plugin_definition)

Extracts the provider from a plugin definition.

Parameters

mixed $plugin_definition

The plugin definition. Usually either an array or an instance of \Drupal\Component\Plugin\Definition\PluginDefinitionInterface

Return Value

string|null

The provider string, if it exists. NULL otherwise.

protected alterDefinitions($definitions)

Invokes the hook to alter the definitions if the alter hook is set.

Parameters

$definitions

The discovered plugin definitions.

protected bool providerExists($provider)

Determines if the provider of a definition exists.

Parameters

$provider

Return Value

bool

TRUE if provider exists, FALSE otherwise.

string[] getCacheContexts()

The cache contexts associated with this object.

These identify a specific variation/representation of the object.

Cache contexts are tokens: placeholders that are converted to cache keys by the @cache_contexts_manager service. The replacement value depends on the request context (the current URL, language, and so on). They're converted before storing an object in cache.

Return Value

string[]

An array of cache context tokens, used to generate a cache ID.

string[] getCacheTags()

The cache tags associated with this object.

When this object is modified, these cache tags will be invalidated.

Return Value

string[]

A set of cache tags.

int getCacheMaxAge()

The maximum age for which this object may be cached.

Return Value

int

The maximum time in seconds that this object may be cached.

protected string getToolkitOperationPluginId(ImageToolkitInterface $toolkit, string $operation)

Returns the plugin ID for a given toolkit and operation.

Parameters

ImageToolkitInterface $toolkit

The toolkit instance.

string $operation

The operation (e.g. "crop").

Return Value

string

The plugin ID.

Exceptions

PluginNotFoundException

ImageToolkitOperationInterface getToolkitOperation(ImageToolkitInterface $toolkit, string $operation)

Returns a toolkit operation plugin instance.

Parameters

ImageToolkitInterface $toolkit

The toolkit instance.

string $operation

The operation (e.g. "crop").

Return Value

ImageToolkitOperationInterface

An instance of the requested toolkit operation plugin.

Exceptions

PluginNotFoundException