romainrg/rabbitmq_client

使用PHP-AMQPLib与CodeIgniter交互的RabbitMQ库

7.0-beta 2019-02-27 16:15 UTC

This package is auto-updated.

Last update: 2024-09-05 08:37:09 UTC


README

用于轻松与RabbitMQ交互的CodeIgniter库 🐰❤

📚 依赖关系

  • PHP 5.4+(带有Composer)
  • 服务器上安装了Rabbit MQ(至少3.5.*)
  • php-amqplib
  • CodeIgniter框架(推荐3.1.8+)

🔰 安装

➡️ 第1步:通过Composer安装库

只需在项目文件夹中运行以下命令即可

composer require romainrg/rabbitmq_client

或者将以下行添加到您的composer.json文件中

"require": {
    "romainrg/rabbitmq_client": "^6.2.0"
},

别忘了将您的autoload包含到CI配置文件中

$config['composer_autoload'] = FCPATH.'vendor/autoload.php';

➡️ 第2步:在项目目录中使用以下命令运行composer update

$ composer require romainrg/rabbitmq_client

➡️ 第3步:创建以下配置文件

您需要将其创建在位于./application/config/rabbitmq.php的CI配置文件夹中

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * Config for Rabbit MQ Library
 */
$config['rabbitmq'] = array(
    'host' => 'localhost',     // <- Your Host       (default: localhost)
    'port' => 5672,            // <- Your Port       (default: 5672)
    'user' => 'username',      // <- Your User       (default: guest)
    'pass' => 'password',      // <- Your Password   (default: guest)
    'vhost' => '/',            // <- Your Vhost      (default: /)
    'allowed_methods' => null, // <- Allowed methods (default: null)
    'non_blocking' => false,   // <- Your Host       (default: false)
    'timeout' => 0             // <- Timeout         (default: 0)          
);

➡️ 第4步:在CI核心控制器文件中加载库

(或者只是一个CI控制器)

$this->load->add_package_path(APPPATH . 'third_party/rabbitmq');
$this->load->library('rabbitmq');
$this->load->remove_package_path(APPPATH . 'third_party/rabbitmq');

➡️ 第5步:享受并给我一些改进或想法! ;)

示例

➡️ 将一些数据推送到队列

这将创建(如果不存在),名为'hello_queue'的队列,并在其中插入文本'Hello World !'

$this->rabbitmq->push('hello_queue', 'Hello World !');

如果您想通过CLI命令运行CI控制器方法

$ php www.mywebsite.com/index.php 'controller' 'method'

您将得到以下返回

$ [+] Pushing 'Hello World !' to 'hello_queue' -> OK

➡️ 从队列中获取一些数据 (目前仅限CLI)

这将实时从'hello_queue'获取最后插入的数据,激活永久模式并使用'_process'回调函数。

PHP代码

return $this->rabbitmq->pull('hello_queue', true, array($this, '_process'));

在CLI中运行它

$ php www.mywebsite.com/index.php 'controller' 'method'

➡️ 以附加参数将数据推送到队列

这将创建(如果不存在),名为'hello_queue'的队列,并在其中插入文本'Hello World !',第三个参数将'hello_queue'的持久性设置为TRUE(TRUE = 永久,FALSE = 不永久),最后一个参数'delivery_mode (2)使消息持久化(您也可以向此数组添加一些参数)。

$this->rabbitmq->push('hello_queue', 'Hello World !', TRUE, array('delivery_mode' => 2));

对于更多CodeIgniter库,给我一个🍺😁

> 啤酒之路

🔒 许可证

GNU通用公共许可证v3.0