Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 26 |
| ImageToolkitManager | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
90 | |
0.00% |
0 / 26 |
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| getDefaultToolkitId | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 8 |
|||
| getDefaultToolkit | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 5 |
|||
| getAvailableToolkits | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 9 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\ImageToolkit\ImageToolkitManager. | |
| */ | |
| namespace Drupal\Core\ImageToolkit; | |
| use Drupal\Core\Cache\CacheBackendInterface; | |
| use Drupal\Core\Config\ConfigFactoryInterface; | |
| use Drupal\Core\Extension\ModuleHandlerInterface; | |
| use Drupal\Core\Plugin\DefaultPluginManager; | |
| /** | |
| * Manages image toolkit plugins. | |
| * | |
| * @see \Drupal\Core\ImageToolkit\Annotation\ImageToolkit | |
| * @see \Drupal\Core\ImageToolkit\ImageToolkitInterface | |
| * @see \Drupal\Core\ImageToolkit\ImageToolkitBase | |
| * @see plugin_api | |
| */ | |
| class ImageToolkitManager extends DefaultPluginManager { | |
| /** | |
| * The config factory. | |
| * | |
| * @var \Drupal\Core\Config\ConfigFactoryInterface | |
| */ | |
| protected $configFactory; | |
| /** | |
| * Constructs the ImageToolkitManager object. | |
| * | |
| * @param \Traversable $namespaces | |
| * An object that implements \Traversable which contains the root paths | |
| * keyed by the corresponding namespace to look for plugin implementations. | |
| * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend | |
| * Cache backend instance to use. | |
| * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler | |
| * The module handler. | |
| * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory | |
| * The config factory. | |
| */ | |
| public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler, ConfigFactoryInterface $config_factory) { | |
| parent::__construct('Plugin/ImageToolkit', $namespaces, $module_handler, 'Drupal\Core\ImageToolkit\ImageToolkitInterface', 'Drupal\Core\ImageToolkit\Annotation\ImageToolkit'); | |
| $this->setCacheBackend($cache_backend, 'image_toolkit_plugins'); | |
| $this->configFactory = $config_factory; | |
| } | |
| /** | |
| * Gets the default image toolkit ID. | |
| * | |
| * @return string|bool | |
| * ID of the default toolkit, or FALSE on error. | |
| */ | |
| public function getDefaultToolkitId() { | |
| $toolkit_id = $this->configFactory->get('system.image')->get('toolkit'); | |
| $toolkits = $this->getAvailableToolkits(); | |
| if (!isset($toolkits[$toolkit_id]) || !class_exists($toolkits[$toolkit_id]['class'])) { | |
| // The selected toolkit isn't available so return the first one found. If | |
| // none are available this will return FALSE. | |
| reset($toolkits); | |
| $toolkit_id = key($toolkits); | |
| } | |
| return $toolkit_id; | |
| } | |
| /** | |
| * Gets the default image toolkit. | |
| * | |
| * @return \Drupal\Core\ImageToolkit\ImageToolkitInterface | |
| * Object of the default toolkit, or FALSE on error. | |
| */ | |
| public function getDefaultToolkit() { | |
| if ($toolkit_id = $this->getDefaultToolkitId()) { | |
| return $this->createInstance($toolkit_id); | |
| } | |
| return FALSE; | |
| } | |
| /** | |
| * Gets a list of available toolkits. | |
| * | |
| * @return array | |
| * An array with the toolkit names as keys and the descriptions as values. | |
| */ | |
| public function getAvailableToolkits() { | |
| // Use plugin system to get list of available toolkits. | |
| $toolkits = $this->getDefinitions(); | |
| $output = array(); | |
| foreach ($toolkits as $id => $definition) { | |
| // Only allow modules that aren't marked as unavailable. | |
| if (call_user_func($definition['class'] . '::isAvailable')) { | |
| $output[$id] = $definition; | |
| } | |
| } | |
| return $output; | |
| } | |
| } |