Yii2 AMQP extension
You need run just this command:
composer require sima-land/yii2-amqp
Example configuration:
return [
'components' => [
'amqp' => [
'class' => \simaland\amqp\Component::class,
'connection' => [
'dsn' => 'amqp://user:password@host:port/vHost?<param>=<value>'
],
'queues' => [
[
'name' => 'queueName',
],
],
'exchanges' => [
[
'name' => 'exchangeName',
],
],
'routing' => [
[
'sourceExchange' => 'exchangeName',
'targetQueue' => 'queueName',
],
],
'consumer' => [
'callbacks' => [
'queueName' => <implement of \simaland\amqp\components\consumer\CallbackInterface::class>,
],
],
],
],
];
You must tests your changes by running this command:
composer test
class AmpqController {
public function actionSend()
{
$msg = \Yii::$app->amqp->createMessage('Test');
$exchange = \Yii::$app->amqp->exchanges->current();
$exchange->declare();
\Yii::$app->amqp->producer->publish($msg, $exchange);
}
public function actionListen()
{
\Yii::$app->amqp->consumer->declare();
\Yii::$app->amqp->consumer->consume();
}