zolli/phabricator-php-api

此包已被弃用且不再维护。未建议替代包。

Phabricator conduit 应用程序的 PHP 实现

2.0.2 2016-01-13 09:01 UTC

This package is auto-updated.

Last update: 2021-08-05 09:42:50 UTC


README

---

Build Status Build Stability Code Coverage Scrutinizer Code Quality Test Results CRAP Report Dependency Status PHP7 Status

Phabricator PHP API (Conduit 客户端)

这是一个基于 PHP 的 Phabricator API 客户端。 Phabricator 是一个开源的软件工程平台,用 PHP 构建,它有一个非常不错的 API,称为 Conduit。有关所有可用端点和方法名称,请参阅 live Phabricator 实例中的 Conduit 应用程序

基本有用功能列表

  • 完全实现了所有当前 API 端点
  • 能够制作自定义客户端实现
  • 每个端点都有自定义处理类

安装

使用 composer

在您的项目内运行此命令

composer require zolli/phabricator-php-api

或将此依赖手动粘贴到您的 composer.json 中

{
  "require": {
        "zolli/phabricator-php-api": "2.0.*"
    }
}

文档

初始化

//Initialization the instance
$api = new \Phabricator\Phabricator('http://phabricator.example.com', 'cli-exmapletoken')

API 现在已准备好使用。此类使用魔术方法代理调用到适当的端点处理程序。Phabricator 方法应如下所示: project.query。在此包中分为两部分。

第一部分是端点(例如此例中的 Project)和方法(query);

使用此示例,调用如下所示

$result = $api->Project('query', ['status' => 'status-open']);

在此示例中,调用了 /api/project.query API,并传递了 status 参数。

使用自定义客户端

此包的 API 允许您制作自定义 API 客户端,这些客户端可以为您运行请求。所有客户端都应该实现 Phabricator\Client\ClientInterface 接口。

自定义客户端应以两种不同方式注入。

通过构造函数注入

$myClient = \Vendor\Package\MyAwesomeApiClient();

$api = new \Phabricator\Phabricator('http://phabricator.example.com', 'cli-exmapletoken', $myClient);

或者您可以使用 Phabricator::setClient(ClientInterface $client) 方法。

$myClient = \Vendor\Package\MyAwesomeApiClient();

$api = new \Phabricator\Phabricator('http://phabricator.example.com', 'cli-exmapletoken');
$api->setClient($myClient);

自定义端点处理程序

处理程序是各种处理端点方法执行和后处理的类。默认情况下,所有 API 端点都有处理程序,但只有默认处理程序不执行任何预处理或后处理。

例如,自定义处理程序可以在使用 file.uploadfile.download 方法时读取和写入文件。

要实现这一点,创建一个实现 \Phabricator\Endpoints\EndpointInterface 并扩展 \Phabricator\Endpoints\BaseEndpoint 类的类,然后您就可以开始了。

BaseEndpoint 提供了一个 defaultExecutor() 方法,当端点方法没有特定执行器时将执行。

创建自定义执行器方法时,将使用这些方法在调用端点方法时。

查看 BaseEndpoint 和任何端点处理程序以获取更多信息。

假设您创建了一个端点处理程序,其完全限定名称为: \Vendor\Package\Hander\FileHander;您可以通过以下方式推送此处理程序

第一个参数是此处理程序的端点名称,第二个参数是处理程序的完全限定类名(FQCN)。

    $api = new \Phabricator\Phabricator('http://phabricator.example.com', 'cli-exmapletoken');

    $api->pushEndpointHandler('File', FileHandler::class);

响应

客户端返回 \Phabricator\Response\ConduitResponse 作为响应。查看API文档中的方法。

升级

从 1.0.0 版本开始

在 2.0.0 版本中,API 发生了重大变化,底层 API 也发生了显著变化。因此,这个版本可能不兼容为 1.0.0 版本创建的组件。

主要API差异

  • \Phabricator\Phabricator 构造函数只接受 baseUrl 和 tokens 作为参数。
  • 构造函数中的客户端注册现在是可选的。
  • 注册自定义端点处理程序只需要处理程序的完全限定类名,而不是实例。
  • 现在响应不再是 \stdClass,而是 \Phabricator\Response\ConduitResponse 对象。
  • \Phabricator\Client\ClientInterface 接口发生了重大变化。
  • 端点处理程序方法(执行器)的参数发生了变化。
  • 现在不使用全局命名空间中的异常,而是使用 buildr/foundation 包中的异常。
  • 客户端不负责请求数据的格式化。

API 文档

2.0.0 版本的 API 文档可在以下链接找到: API 文档

贡献

项目链接

有关贡献指南和编码标准,请访问我们的 编码标准仓库

许可

本项目受 GNU - 通用公共许可证,版本 3 许可。

GPLv3 Logo