ImageStylesPregenerator.php in Image Style Warmer 8
File
src/Plugin/QueueWorker/ImageStylesPregenerator.php
View source
<?php
namespace Drupal\image_style_warmer\Plugin\QueueWorker;
use Drupal\Core\Config\Config;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Queue\QueueWorkerBase;
use Drupal\file\FileInterface;
use Drupal\image_style_warmer\ImageStylesWarmerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class ImageStylesPregenerator extends QueueWorkerBase implements ContainerFactoryPluginInterface {
protected $config;
protected $fileStorage;
protected $imageStylesWarmer;
public function __construct(array $configuration, $plugin_id, array $plugin_definition, Config $image_style_warmer_settings, EntityStorageInterface $file_storage, ImageStylesWarmerInterface $image_styles_warmer) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->config = $image_style_warmer_settings;
$this->fileStorage = $file_storage;
$this->imageStylesWarmer = $image_styles_warmer;
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('config.factory')
->get('image_style_warmer.settings'), $container
->get('entity_type.manager')
->getStorage('file'), $container
->get('image_style_warmer.warmer'));
}
public function processItem($data) {
$file_id = $data['file_id'];
$queueImageStyles = $data['image_styles'];
if (!empty($queueImageStyles) && ($file = $this->fileStorage
->load($file_id)) && $file instanceof FileInterface) {
$this->imageStylesWarmer
->doWarmUp($file, $queueImageStyles);
}
}
}