acquia_dam-1.0.0-rc1/src/Plugin/QueueWorker/IntegrationLinks.php
src/Plugin/QueueWorker/IntegrationLinks.php
<?php namespace Drupal\acquia_dam\Plugin\QueueWorker; use Drupal\acquia_dam\IntegrationLinkRegister; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Processes integration link registration. * * @QueueWorker ( * id = "acquia_dam_integration_links", * title = @Translation("Acquia DAM Integration links"), * cron = {"time" = 30} * ) */ final class IntegrationLinks extends AssetQueueWorkerBase implements ContainerFactoryPluginInterface { /** * The integration link register service. * * @var \Drupal\acquia_dam\IntegrationLinkRegister */ private $integrationLinkRegister; /** * Constructs a IntegrationLinks object. * * @param array $configuration * A configuration array containing information about the plugin instance. * @param string $plugin_id * The plugin_id for the plugin instance. * @param mixed $plugin_definition * The plugin implementation definition. * @param \Drupal\acquia_dam\IntegrationLinkRegister $integration_link_register * The integration link register service. */ public function __construct(array $configuration, $plugin_id, $plugin_definition, IntegrationLinkRegister $integration_link_register) { parent::__construct($configuration, $plugin_id, $plugin_definition); $this->integrationLinkRegister = $integration_link_register; } /** * {@inheritdoc} */ public static function create( ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition ) { return new self( $configuration, $plugin_id, $plugin_definition, $container->get('acquia_dam.integration_link_register') ); } /** * {@inheritdoc} */ public function processItem($data) { if (!is_array($data)) { return FALSE; } if (empty($data['op']) || !is_string($data['op']) || !method_exists($this->integrationLinkRegister, $data['op'])) { return FALSE; } if (empty($data['args']) || !is_array($data['args'])) { return FALSE; } $method = $data['op']; $args = $data['args']; try { $this->integrationLinkRegister->$method(...$args); } catch (\Exception $exception) { $this->processException($exception); } return TRUE; } }