dosomething / messagebroker-phplib
此包已被废弃,不再维护。没有建议的替代包。
这是DoSomething.org消息代理系统组件之间共享功能的库。
0.3.8
2016-12-09 21:43 UTC
Requires
- php: >= 5.3.0
- php-amqplib/php-amqplib: v2.6.*
Requires (Dev)
- phpunit/phpunit: 4.4.*
- squizlabs/php_codesniffer: 2.*
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