openquestions-1.0.x-dev/src/Service/VoteDataFactory.php

src/Service/VoteDataFactory.php
<?php

namespace Drupal\openquestions\Service;

use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Logger\LoggerChannelInterface;
use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
use Drupal\openquestions\Model\VoteDataBasic;
use Drupal\Core\Entity\EntityTypeManager;
use Drupal\openquestions\Model\VoteDataInterface;

/**
 * Factory for vote data objects.
 */
class VoteDataFactory implements VoteDataFactoryInterface {

  use StringTranslationTrait;

  /**
   * Config factory.
   *
   * @var \Drupal\Core\Config\ConfigFactoryInterface
   */
  protected $configFactory;

  /**
   * The entity type manager.
   *
   * @var \Drupal\Core\Entity\EntityTypeManager
   */
  protected $entityTypeManager;

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

  /**
   * VoteDataFactory constructor.
   *
   * @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
   *   Config factory.
   * @param \Drupal\Core\Entity\EntityTypeManager $entityTypeManager
   *   The entity type manager.
   * @param \Drupal\Core\Logger\LoggerChannelInterface $logger
   *   Our logger.
   */
  public function __construct(ConfigFactoryInterface $configFactory, EntityTypeManager $entityTypeManager, LoggerChannelInterface $logger) {
    $this->configFactory = $configFactory;
    $this->entityTypeManager = $entityTypeManager;
    $this->logger = $logger;
  }

  /**
   * Create a new vote data object for the given item ID.
   */
  public function createVoteDataForItem($id) : VoteDataInterface {
    return new VoteDataBasic($id, $this->configFactory, $this->entityTypeManager, $this->logger);
  }

}

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

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