1. Go to this page and download the library: Download nilportugues/eventbus-queue library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nilportugues / eventbus-queue example snippets
$container['LoggerEventBusMiddleware'] = function() use ($container) {
return new \NilPortugues\MessageBus\EventBus\LoggerEventBusMiddleware(
$container['Monolog']
);
};
//Definition of the Serializer
$container['NativeSerializer'] = function() use ($container) {
return new \NilPortugues\MessageBus\Serializer\NativeSerializer();
};
//Definition of the Queue driver
$container['RabbitMQ'] = function() use ($container) {
return new AMQPStreamConnection('127.0.0.1', 5672, 'guest', 'guest');
};
//Definition of the Event Bus Queue. For instance RabbitMQ.
$container['EventBusQueueAdapter'] = function() use ($container) {
return new \NilPortugues\MessageBus\EventBusQueue\Adapters\AmqpQueue(
$container['NativeSerializer'],
$container['RabbitMQ'],
'myEventBusQueue' //queue Name
);
};
//Definition of the Producer.
$container['ProducerEventBusMiddleware'] = function() use ($container) {
return new \NilPortugues\MessageBus\EventBusQueue\ProducerEventBusMiddleware(
$container['EventBusQueueAdapter']
);
};
//This is our ProducerEventBus.
$container['ProducerEventBus'] = function() use ($container) {
return new \NilPortugues\MessageBus\EventBus\EventBus([
$container['LoggerEventBusMiddleware'],
$container['ProducerEventBusMiddleware']
]);
};
//This is our ConsumerEventBus.
$container['ConsumerEventBus'] = function() use ($container) {
return new \NilPortugues\MessageBus\EventBus\EventBus([
$container['LoggerEventBusMiddleware'],
$container['EventBusMiddleware'],
]);
};
$container['MongoDB'] = function() use ($container) {
return new \MongoDB\Client();
};
//This is an error Queue.
$container['ErrorQueue'] = function() use ($container) {
return new \NilPortugues\MessageBus\EventBusQueue\Adapters\MongoQueue(
$container['NativeSerializer'],
$container['MongoDB'],
'error_queues',
'myEventBusErrorQueue'
);
};
//... your $container should be available here.
$consumer = \NilPortugues\MessageBus\EventBusQueue\EventBusWorker();
$consumer->consume(
$container->get('EventBusQueueAdapter'),
$container->get('ErrorQueue'),
$container->get('ConsumerEventBus')
);