acquia_commercemanager-8.x-1.122/modules/acm_promotion/src/AcmPromotionQueueBase.php

modules/acm_promotion/src/AcmPromotionQueueBase.php
<?php

namespace Drupal\acm_promotion;

use Drupal\acm\Connector\IngestAPIWrapper;
use Drupal\Core\Logger\LoggerChannelFactory;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Queue\QueueWorkerBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Cache\CacheTagsInvalidatorInterface;

/**
 * Class AcmPromotionQueueBase.
 *
 * @package Drupal\acm_promotion
 */
abstract class AcmPromotionQueueBase extends QueueWorkerBase implements ContainerFactoryPluginInterface {

  /**
   * IngestAPIWrapper Service object.
   *
   * @var \Drupal\acm\Connector\IngestAPIWrapper
   */
  protected $ingestApiWrapper;

  /**
   * Promotion manager.
   *
   * @var \Drupal\acm_promotion\AcmPromotionsManager
   */
  protected $promotionManager;

  /**
   * LoggerChannelInterface object.
   *
   * @var \Drupal\Core\Logger\LoggerChannelInterface
   */
  protected $logger;

  /**
   * The cache tags invalidator.
   *
   * @var \Drupal\Core\Cache\CacheTagsInvalidatorInterface
   */
  protected $tagInvalidate;

  /**
   * AcmPromotionAttachQueue constructor.
   *
   * @param array $configuration
   *   Plugin config.
   * @param string $plugin_id
   *   Plugin unique id.
   * @param mixed $plugin_definition
   *   Plugin definition.
   * @param \Drupal\acm\Connector\IngestAPIWrapper $ingestApiWrapper
   *   IngestAPIWrapper Service object.
   * @param \Drupal\acm_promotion\AcmPromotionsManager $promotionManager
   *   Promotion manager.
   * @param \Drupal\Core\Logger\LoggerChannelFactory $loggerFactory
   *   Logger service.
   * @param \Drupal\Core\Cache\CacheTagsInvalidatorInterface $tag_invalidate
   *   The cache tags invalidator.
   */
  public function __construct(array $configuration,
                              $plugin_id,
                              $plugin_definition,
                              IngestAPIWrapper $ingestApiWrapper,
                              AcmPromotionsManager $promotionManager,
                              LoggerChannelFactory $loggerFactory,
                              CacheTagsInvalidatorInterface $tag_invalidate) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->ingestApiWrapper = $ingestApiWrapper;
    $this->promotionManager = $promotionManager;
    $this->logger = $loggerFactory->get('acm_sku');
    $this->tagInvalidate = $tag_invalidate;
  }

  /**
   * Creates an instance of the plugin.
   *
   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
   *   The container to pull out services used in the plugin.
   * @param array $configuration
   *   A configuration array containing information about the plugin instance.
   * @param string $plugin_id
   *   The plugin ID for the plugin instance.
   * @param mixed $plugin_definition
   *   The plugin implementation definition.
   *
   * @return static
   *   Returns an instance of this plugin.
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static(
      $configuration,
      $plugin_id,
      $plugin_definition,
      $container->get('acm.ingest_api'),
      $container->get('acm_promotion.promotions_manager'),
      $container->get('logger.factory'),
      $container->get('cache_tags.invalidator')
    );
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc