TransactorPluginManager.php in Transaction 8
File
src/TransactorPluginManager.php
View source
<?php
namespace Drupal\transaction;
use Drupal\Core\Cache\CacheBackendInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Plugin\DefaultPluginManager;
use Drupal\transaction\Annotation\Transactor;
class TransactorPluginManager extends DefaultPluginManager implements TransactorPluginManagerInterface {
public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
parent::__construct('Plugin/Transaction', $namespaces, $module_handler, TransactorPluginInterface::class, Transactor::class);
$this
->alterInfo('transaction_transactor_info');
$this
->setCacheBackend($cache_backend, 'transaction_transactors');
}
public function getTransactors() {
$transactors = [];
foreach ($this
->getDefinitions() as $plugin_id => $plugin_def) {
$transactors[$plugin_id] = $plugin_def;
}
asort($transactors);
return $transactors;
}
public function getTransactor($transactor_id) {
return $this
->getDefinition($transactor_id, FALSE);
}
}