api-clients/travis

异步优先 TravisCI PHP API 客户端

1.0.1 2017-11-05 18:36 UTC

This package is auto-updated.

Last update: 2024-09-15 19:32:33 UTC


README

Build Status Latest Stable Version Total Downloads Code Coverage License PHP 7 ready

安装

通过 Composer 安装,使用以下命令,它将自动检测最新版本并将其绑定到 ^

composer require api-clients/travis

使用方法

客户端需要两样东西,ReactPHP 事件循环,以及可选的认证令牌。一旦创建客户端,您可以调用 user 方法来显示当前认证的用户。

use React\EventLoop\Factory;
use ApiClients\Client\Travis\AsyncClient;
use ApiClients\Client\Travis\Resource\UserInterface;
use function ApiClients\Foundation\resource_pretty_print;

$loop = Factory::create();
$client = AsyncClient::create(
    $loop, 
    'your travis key from https://blog.travis-ci.com/2013-01-28-token-token-token/'
);

$client->user()->then(function (UserInterface $user) {
    resource_pretty_print($user);
});

$loop->run();

结果流

上面的例子使用了承诺,当有多个结果时,会返回一个可观察对象。这里使用 RxPHP 进行可观察对象。这意味着您可以对结果流应用大量方法。

use React\EventLoop\Factory;
use ApiClients\Client\Travis\AsyncClient;
use ApiClients\Client\Travis\Resource\BroadcastInterface;
use function ApiClients\Foundation\resource_pretty_print;

$loop = Factory::create();
$client = AsyncClient::create($loop, 'your key');

$client->broadcasts()->subscribe(function (BroadcastInterface $broadcast) {
    resource_pretty_print($broadcast);
});

$loop->run();

同步使用

同步客户端的工作方式几乎与异步相同,实际上它包装了异步客户端来完成所有工作。此示例与异步使用示例执行相同。

use ApiClients\Client\Travis\Client;
use function ApiClients\Foundation\resource_pretty_print;

$client = Client::create('your travis key');

resource_pretty_print($client->user());

同步结果流

同步结果流以数组形式返回。

use ApiClients\Client\Travis\Client;
use function ApiClients\Foundation\resource_pretty_print;

$client = Client::create('your travis key');

foreach ($client->broadcasts() as $broadcast) {
    resource_pretty_print($broadcast);
};

示例

examples 目录包含此包的所有示例。

许可证

MIT 许可证 (MIT)

版权所有 (c) 2017 Cees-Jan Kiewiet

特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人士免费使用权,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许软件的接收者进行上述操作,前提是满足以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“现状”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论是否因使用本软件或其使用或其他方式引起的。