salucro/nats

PHP的nats.io客户端

该软件包的官方仓库似乎已删除,因此该软件包已被冻结。

0.8.7 2018-06-09 15:32 UTC

README

Travis

主分支 开发分支
Build Status Build Status

覆盖率

主分支 开发分支
Coverage Status Coverage Status

简介

PHP的NATS消息系统客户端。

要求

使用方法

安装

首先,将composer下载到我们的项目目录中

curl -O https://getcomposer.org.cn/composer.phar
chmod +x composer.phar

现在让我们告诉composer关于我们项目的依赖关系,在这种情况下,PHPNats。我们这样做是通过创建一个composer.json文件,并将其放置在我们项目的根目录中,紧挨着composer.phar

{
  "require": {
    "repejota/nats": "dev-master"
  }
}

让Composer施展魔法

php composer.phar install

Composer将下载composer.json中定义的所有依赖项,并准备所有需要自动加载的文件。

基本用法

$client = new \Nats\Connection();
$client->connect();

// Publish Subscribe

// Simple Subscriber.
$client->subscribe(
    'foo',
    function ($message) {
        printf("Data: %s\r\n", $message->getBody());
    }
);

// Simple Publisher.
$client->publish('foo', 'Marty McFly');

// Wait for 1 message.
$client->wait(1);

// Request Response

// Responding to requests.
$sid = $client->subscribe(
    'sayhello',
    function ($message) {
        $message->reply('Reply: Hello, '.$message->getBody().' !!!');
    }
);

// Request.
$client->request(
    'sayhello',
    'Marty McFly',
    function ($message) {
        echo $message->getBody();
    }
);

编码连接

$encoder = new \Nats\Encoders\JSONEncoder();
$options = new \Nats\ConnectionOptions();
$client = new \Nats\EncodedConnection($options, $encoder);
$client->connect();

// Publish Subscribe

// Simple Subscriber.
$client->subscribe(
    'foo',
    function ($payload) {
        printf("Data: %s\r\n", $payload->getBody()[1]);
    }
);

// Simple Publisher.
$client->publish(
    'foo',
    [
     'Marty',
     'McFly',
    ]
);

// Wait for 1 message.
$client->wait(1);

// Request Response

// Responding to requests.
$sid = $client->subscribe(
    'sayhello',
    function ($message) {
        $message->reply('Reply: Hello, '.$message->getBody()[1].' !!!');
    }
);

// Request.
$client->request(
    'sayhello',
    [
     'Marty',
     'McFly',
    ],
    function ($message) {
        echo $message->getBody();
    }
);

开发者信息

版本发布

测试

测试文件位于tests目录下。要运行它们,您需要PHPUnit并执行make test-tdd

我们还在spec目录下有一个BDD测试套件。要运行套件,您需要PHPSpec并执行make test-bdd

您也可以使用make test执行所有套件(TDD + BDD)。

代码质量

我们使用PHP Code Sniffer来确保我们的代码遵循高质量标准。

要执行代码分析,请执行make lint

当我们进行代码检查时,目前有三个步骤

  • 首先,使用php本身进行检查 php -l
  • 然后,使用PSR2标准进行检查
  • 最后,使用一个自定义的ruleset.xml进行检查,该规则集检查doxygen和不同的性能提示。

创作者

Raül Pérez

许可协议

MIT,请参阅LICENSE