dosomething/messagebroker-phplib

此包已被废弃,不再维护。没有建议的替代包。

这是DoSomething.org消息代理系统组件之间共享功能的库。

0.3.8 2016-12-09 21:43 UTC

README

这是一个基于PHP的库,充当围绕 php-amqplib/php-amqplib AMQP PHP库的包装器。目标是提供实用方法来简化与基于AMQP(RabbitMQ)服务器交互的一些更常见的活动。

使用方法

在任何基于PHP的应用程序的composer.json文件中,通过以下方式包含此包:

  "require": {
    "php": ">= 5.3.0",
    "DoSomething/messagebroker-phplib": "0.3.*",
    ...

创建类的实例

// RabbitMQ
$rabbitCredentials = [
    'host' =>  getenv("RABBITMQ_HOST"),
    'port' => getenv("RABBITMQ_PORT"),
    'username' => getenv("RABBITMQ_USERNAME"),
    'password' => getenv("RABBITMQ_PASSWORD"),
    'vhost' => getenv("RABBITMQ_VHOST"),
];

$config['exchange'] = array(
  'name' => $exchangeSettings->name,
  'type' => $exchangeSettings->type,
  'passive' => $exchangeSettings->passive,
  'durable' => $exchangeSettings->durable,
  'auto_delete' => $exchangeSettings->auto_delete,
);
    
$config['queue'] = array(
  'name' => $queueSetting->name,
  'passive' => $queueSetting->passive,
  'durable' =>  $queueSetting->durable,
  'exclusive' =>  $queueSetting->exclusive,
  'auto_delete' =>  $queueSetting->auto_delete,
  'routingKey' =>  $queueSetting->routing_key,
  'bindingKey' => $bindingKey,
);

$mb = new MessageBroker($rabbitCredentials, $config));

###发布消息

$this->messageBroker->publish($message, <routing key>);

###消费消息

消息的消费方式由连接到队列的定义确定。

$config['consume'] = array(
  'no_local' => $queueSetting->consume->no_local,
  'no_ack' => $queueSetting->consume->no_ack,
  'nowait' => $queueSetting->consume->nowait,
  'exclusive' => $queueSetting->consume->exclusive,
);

消费者为每个回调保留的消息数量。当同一队列上运行多个消费者时,这是并行处理所必需的。

define('QOS_SIZE', 1);

$mb->consumeMessage([new consumer class(), <consumer method], QOS_SIZE);

消费消息的详细信息将发送到消费者方法>>

 public function <consumer method>($payload) {

####Gulp支持:使用直接路径到gulp ./node_modules/.bin/gulp,或将别名添加到系统配置(.bash_profile)中,如alias gulp='./node_modules/.bin/gulp'

###代码检查

  • gulp lint

有关配置和任务组合,请参阅gulpfile.js

##PHP CodeSniffer

  • php ./vendor/bin/phpcs --standard=./ruleset.xml --colors -s MessageBroker-Drupal.php src tests 列出所有文件的编码违规。

  • php ./vendor/bin/phpcbf --standard=./ruleset.xml --colors MessageBroker-Drupal.php src tests 自动处理文件以符合编码标准。

###测试覆盖率

  • gulp test

  • npm test

##PHP Unit

  • $ ./vendor/bin/phpunit --verbose tests