bee/client

Bee 的 PHP 客户端。

dev-master 2017-09-14 11:52 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:24:39 UTC


README

安装

推荐通过 Composer 安装此库

$ composer require bee/client:@dev

用法

use Bee\Client\Client;
use Bee\Client\Connection\StreamConnection;
use Bee\Client\Packer\PurePacker;

$conn = new StreamConnection();
// or
// $conn = new StreamConnection('tcp://127.0.0.1:3301', [
//     'socket_timeout' => 5.0, 
//     'connect_timeout' => 5.0,
//     'tcp_nodelay' => true,
// ]);
// or
// $conn = new StreamConnection('unix:///tmp/bee_instance.sock');

$client = new Client($conn, new PurePacker());
// or
// $client = new Client($conn, new PeclPacker());

// if authentication credentials are required
// $client->authenticate('username', 'userpass');

$space = $client->getSpace('my_space');

// Selecting all data
$result = $space->select();
var_dump($result->getData());

// Result: inserted tuple { 1, 'foo', 'bar' }
$space->insert([1, 'foo', 'bar']);

// Result: inserted tuple { 2, 'baz', 'qux'}
$space->upsert([2, 'baz', 'qux'], [['=', 1, 'BAZ'], ['=', 2, 'QUX']]);

// Result: updated tuple { 2, 'baz', 'qux'} with { 2, 'BAZ', 'QUX' }
$space->upsert([2, 'baz', 'qux'], [['=', 1, 'BAZ'], ['=', 2, 'QUX']]);

$result = $client->evaluate('return ...', [42]);
var_dump($result->getData());

$result = $client->call('box.stat');
var_dump($result->getData());

注意

使用库提供的打包类需要安装额外的依赖项,这些依赖项不直接包含在库中。因此,您必须手动安装它们。例如,如果您计划使用 PurePacker,请安装 rybakit/msgpack 包。请参阅 composer.json 的 "suggest" 部分,了解其他选项。

测试

运行单元测试

$ phpunit --testsuite Unit

运行集成测试

$ phpunit --testsuite Integration

确保首先启动 client.lua

运行所有测试

$ phpunit

如果您已安装 Docker,可以在 Docker 容器中运行测试。首先,创建一个容器

$ ./dockerfile.py | docker build -t client -

上述命令将创建一个名为 client 的容器,具有 PHP 7.1 运行时。您可以通过定义 IMAGE 环境变量来更改默认运行时

$ IMAGE='php:7.0-cli' ./dockerfile.py | docker build -t client -

请在此处查看各种镜像列表 这里

然后运行 Bee 实例(集成测试需要)

$ docker network create bee-php
$ docker run -d --net=bee-php --name=bee -v `pwd`:/client \
    bee/bee:1.7 bee /client/tests/Integration/client.lua

然后运行单元测试和集成测试

$ docker run --rm --net=bee-php --name client -v $(pwd):/client -w /client client

许可证

WTF 许可证