for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Ackintosh\Snidel\Traits;
use Ackintosh\Snidel\Result\Normalizer as ResultNormalizer;
use Ackintosh\Snidel\Task\Normalizer as TaskNormalizer;
use Bernard\Consumer;
use Bernard\Driver;
use Bernard\Normalizer\EnvelopeNormalizer;
use Bernard\Normalizer\PlainMessageNormalizer;
use Bernard\Producer;
use Bernard\QueueFactory;
use Bernard\QueueFactory\PersistentFactory;
use Bernard\Router;
use Bernard\Serializer;
use Normalt\Normalizer\AggregateNormalizer;
use Symfony\Component\EventDispatcher\EventDispatcher;
trait Queueing
{
/**
* @param Driver $driver
* @return PersistentFactory
*/
public function createFactory(Driver $driver)
$aggregateNormalizer = new AggregateNormalizer([
new EnvelopeNormalizer(),
new TaskNormalizer(),
new ResultNormalizer()
]);
return new PersistentFactory($driver, new Serializer($aggregateNormalizer));
}
* @param Router $router
* @return Consumer
public function createConsumer(Router $router)
return new Consumer($router, new EventDispatcher());
* @param QueueFactory $factory
* @return Producer
public function createProducer(QueueFactory $factory)
return new Producer($factory, new EventDispatcher());