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);
}
}
