commerce-8.x-2.8/modules/log/src/LogStorage.php
modules/log/src/LogStorage.php
<?php namespace Drupal\commerce_log; use Drupal\commerce\CommerceContentEntityStorage; use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Entity\ContentEntityInterface; use Drupal\Core\Cache\CacheBackendInterface; use Drupal\Core\Database\Connection; use Drupal\Core\Entity\EntityManagerInterface; use Drupal\Core\Language\LanguageManagerInterface; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface; class LogStorage extends CommerceContentEntityStorage implements LogStorageInterface { /** * The log template manager. * * @var \Drupal\commerce_log\LogTemplateManagerInterface */ protected $logTemplateManager; /** * Constructs a new CommerceContentEntityStorage object. * * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type * The entity type definition. * @param \Drupal\Core\Database\Connection $database * The database connection to be used. * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager * The entity manager. * @param \Drupal\Core\Cache\CacheBackendInterface $cache * The cache backend to be used. * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager * The language manager. * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher * The event dispatcher. * @param \Drupal\commerce_log\LogTemplateManagerInterface $log_template_manager * The log template manager. */ public function __construct(EntityTypeInterface $entity_type, Connection $database, EntityManagerInterface $entity_manager, CacheBackendInterface $cache, LanguageManagerInterface $language_manager, EventDispatcherInterface $event_dispatcher, LogTemplateManagerInterface $log_template_manager) { parent::__construct($entity_type, $database, $entity_manager, $cache, $language_manager, $event_dispatcher); $this->logTemplateManager = $log_template_manager; } /** * {@inheritdoc} */ public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) { return new static( $entity_type, $container->get('database'), $container->get('entity.manager'), $container->get('cache.entity'), $container->get('language_manager'), $container->get('event_dispatcher'), $container->get('plugin.manager.commerce_log_template') ); } /** * {@inheritdoc} */ public function generate(ContentEntityInterface $source, $template_id, array $params = []) { $template_plugin = $this->logTemplateManager->getDefinition($template_id); $log = $this->create([ 'category_id' => $template_plugin['category'], 'template_id' => $template_id, 'source_entity_id' => $source->id(), 'source_entity_type' => $source->getEntityTypeId(), 'params' => $params, ]); return $log; } /** * {@inheritdoc} */ public function loadMultipleByEntity(ContentEntityInterface $entity) { return $this->loadByProperties([ 'source_entity_id' => $entity->id(), 'source_entity_type' => $entity->getEntityTypeId(), ]); } }