activity_stream-1.0.x-dev/src/Plugin/QueueWorker/ActivityWorkerActivities.php
src/Plugin/QueueWorker/ActivityWorkerActivities.php
<?php
namespace Drupal\activity_stream\Plugin\QueueWorker;
use Drupal\activity_stream\ActivityFactory;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* A report worker.
*
* @QueueWorker(
* id = "activity_stream_activities",
* title = @Translation("Process activity activities."),
* cron = {"time" = 60}
* )
*
* @todo Change the weight to make sure it runs after the logger
* is this possible? See Cron.php::processQueues() and getDefinitions().
*
* This QueueWorker is responsible for creating Activity entities and will
* retrieve use information provided by activity_stream_logger.
*/
class ActivityWorkerActivities extends ActivityWorkerBase implements ContainerFactoryPluginInterface {
/**
* Activity Factory.
*
* @var \Drupal\activity_creator\ActivityFactory
*/
private $activityFactory;
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, ActivityFactory $activityFactory) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->activityFactory = $activityFactory;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static(
$configuration,
$plugin_id,
$plugin_definition,
$container->get('activity_stream.activity_factory')
);
}
/**
* {@inheritdoc}
*
* @todo Can one item have multiple destinations; if not: split.
*/
public function processItem($data) {
// Let the factory work.
$this->activityFactory->createActivities($data);
}
}
