garethmidwood/codebasehq-php

此包的最新版本(1.1.2)没有可用的许可证信息。

CodebaseHQ API 的 PHP 库

1.1.2 2019-03-12 20:58 UTC

This package is auto-updated.

Last update: 2024-09-13 10:43:43 UTC


README

CodebaseHQ API 的 PHP 库

注意

此库为用户、项目、工单等创建对象。当你查询检索工单时(这是一个示例,也适用于其他类),它将尝试查找用户并将工单分配者/报告者与用户关联起来。如果你尚未检索用户,则你的工单将没有分配者或报告者。因此,最佳步骤是

  • 检索用户
  • 检索项目
  • 检索项目的工单
  • 检索项目的时间会话

以下可以找到这些步骤的说明。

用法

连接到 API

为了连接到并查询 codebase API,你需要创建一个 CodebaseHQAccount 对象

$codebaseHQ = new GarethMidwood\CodebaseHQ\CodebaseHQAccount(
    $apiUser,
    $apiKey,
    $apiHost
);

检索所有用户

用户在账户级别被拉取

$users = $codebaseHQ->users();

这返回一个 User\Collection - 应在集合上执行搜索,该类为此提供了一些辅助方法

检索项目

项目可以作为整个账户或通过永久链接单独拉取。

检索所有项目

项目也在账户级别被拉取

$projects = $codebaseHQ->projects();

这返回一个 Project\Collection - 应在集合上执行搜索,该类为此提供了一些辅助方法

检索单个项目

你可以通过永久链接拉取单个项目(注意方法名称是单数形式)

$project = $codebaseHQ->project('project-permalink');

这返回一个 Project\Project - 不是集合

填充项目详细信息

项目可以填充所有其分类、优先级、状态和类型。

$codebaseHQ->categories($project);
$codebaseHQ->priorities($project);
$codebaseHQ->statuses($project);
$codebaseHQ->types($project);

检索项目的工单

如果有一个 Project\Project 对象,则可以检索工单。

$codebaseHQ->tickets($project, $pageNo);

$project->getTickets();

tickets 方法返回一个布尔值,指示是否存在更多结果(因为结果已分页)。工单本身被添加到项目中的 Ticket\Collection。一如既往,应在集合上执行搜索,该类为此提供了一些辅助方法

分页

工单已分页,每页 20 个。你可以编写一个简单的循环来拉取项目的所有工单

$pageNo = 1;
$moreResultsToRetrieve = true;

while ($moreResultsToRetrieve) {
    $moreResultsToRetrieve = $codebaseHQ->tickets($project, $pageNo);
    $pageNo++;
}

检索项目的时间会话

如果您有一个 Project\Project 对象,则可以检索时间会话。您还必须通过一个时间段来检索时间,这可以是天/周/月或所有 - 存在针对每个的类。

// can be All|Day|Week|Month
$period = new GarethMidwood\CodebaseHQ\TimeSession\Period\Week;

$codebaseHQ->times($project, $period);

如果已填充那些集合,则时间会话将与项目、工单和用户相关联。

// times for the project
$project->getTimeSessions();

// times associated to a user
$user->getTimeSessions();

// times associated to a ticket
$ticket->getTimeSessions();