知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。

安装
安装信息加入composer.json

{
    "require": {
        "videlalvaro/php-amqplib": "v2.1.0"
    }
}

执行命令
php composer.phar install
配置
在config/autoload增加amqp.local.php

<?php
return array(
    'amqp' => array(
        'host' => '10.211.55.61',
        'port' => 5672,
        'user' => 'nate',
        'password' => '123123',
        'vhost' => 'test_vhost',
        'debug' => true,
    ),
);
Action代码
public function sendAction() {
    $config = $this->getServiceLocator()->get('config')['amqp'];
    $channel = null;
    $conn = null;
    try {
        $conn = new AMQPConnection($config['host'], $config['port'], $config['user'], $config['password'], $config['vhost']);
        $channel = $conn->channel();

        $exchange = 'logs_2';
        //direct exchange
        $channel->exchange_declare($exchange, 'direct', false, false, false);
        //fanout exchange
        //$channel->exchange_declare($exchange, 'fanout', false, false, false);
        //topic exchange
        //$channel->exchange_declare($exchange, 'topic', false, false, false);

        //direct key
        $key = 'test';
        //topic key
        //$key = 'log.#';
        //$key = 'log.*';

        $content = 'This is Test! at ' . date('Y-m-d');
        $msg = new AMQPMessage($content, array('content_type' => 'text/plain'));
        $channel->basic_publish($msg, $exchange, $key);

        if (! is_null($channel)) {
            $channel->close();
        }

        if (! is_null($conn)) {
            $conn->close();
        }

        echo "sent " . $content;
        exit;

    } catch (AMQPProtocolConnectionException $ex) {
        echo $ex->getMessage();
        exit;
    }

}