docusign_signature-1.0.x-dev/src/AuthManager.php
src/AuthManager.php
<?php
declare(strict_types=1);
namespace Drupal\docusign_signature;
use Drupal\Component\Plugin\Factory\DefaultFactory;
use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
use Drupal\Core\Plugin\DefaultPluginManager;
use Drupal\Core\TempStore\PrivateTempStoreFactory;
/**
* Provides the DocuSign Authentication manager.
*/
class AuthManager extends DefaultPluginManager implements AuthManagerInterface {
/**
* The configuration factory.
*
* @var \Drupal\Core\Config\ConfigFactoryInterface
*/
protected ConfigFactoryInterface $configFactory;
/**
* The logger factory.
*
* @var \Drupal\Core\Logger\LoggerChannelFactoryInterface
*/
protected LoggerChannelFactoryInterface $loggerFactory;
/**
* The tempstore factory.
*
* @var \Drupal\Core\TempStore\PrivateTempStoreFactory
*/
protected PrivateTempStoreFactory $tempStoreFactory;
/**
* Constructs a new Entity plugin manager.
*
* @param \Traversable $namespaces
* An object that implements \Traversable which contains the root paths
* keyed by the corresponding namespace to look for plugin implementations.
* @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
* The cache backend to use.
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
* The module handler.
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The config factory.
* @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $logger_factory
* The logger factory.
* @param \Drupal\Core\TempStore\PrivateTempStoreFactory $temp_store_factory
* The tempstore factory.
*/
public function __construct(
\Traversable $namespaces,
CacheBackendInterface $cache_backend,
ModuleHandlerInterface $module_handler,
ConfigFactoryInterface $config_factory,
LoggerChannelFactoryInterface $logger_factory,
PrivateTempStoreFactory $temp_store_factory
) {
parent::__construct('DocuSignAuth', $namespaces, $module_handler, 'Drupal\docusign_signature\AuthInterface', 'Drupal\docusign_signature\Annotation\DocuSignAuth');
$this->alterInfo('docusign_signature_auth_info');
$this->setCacheBackend($cache_backend, 'docusign_signature_auth_info_plugins');
$this->configFactory = $config_factory;
$this->loggerFactory = $logger_factory;
$this->tempStoreFactory = $temp_store_factory;
}
/**
* {@inheritdoc}
*/
public function createInstance($plugin_id, array $configuration = []) {
$plugin_definition = $this->getDefinition($plugin_id);
$plugin_class = DefaultFactory::getPluginClass($plugin_id, $plugin_definition, 'Drupal\docusign_signature\AuthInterface');
return new $plugin_class($this->configFactory, $this->loggerFactory->get('docusign_signature_auth'), $this->tempStoreFactory);
}
}
