dugan/sprintly-php

适用于PHP 5.4+的Sprintly API包装器

v0.0.4 2014-12-10 23:36 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:26:58 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License

这是一个用于PHP 5.4+包装Sprint.ly API的库。

API状态:(:heavy_check_mark: 完成,:interrobang: 进行中,:x: 待办)

"CRUD"应理解为

创建资源、删除资源、检索所有资源、检索1+个资源、更新资源

✔️ 产品CRUD

✔️ 产品人员CRUD

✔️ 产品项目CRUD

✔️ 对产品的项目进行轻量级查询

✔️ 检索项目的子项

快速入门

此包需要Composer

composer require "dugan/sprintly-php": "dev-master"
composer update
$service = new \Dugan\Sprintly\SprintlyService('myemail@example.net', 'mySprintlyAuthKey');
$products = $service->getProductsRepository()->all();
foreach($products as $product) {
    echo $product->getName()."\n";
}

工作原理

底层,我们使用Guzzle库来消费Sprintly API

可以使用Dugan\Sprintly\SprintlyService中的包装方法访问顶级实体,或者可以使用服务检索单独的存储库并与之交互。

认证

Sprintly的API使用电子邮件地址和认证令牌的HTTP认证,您可以从他们的网站检索这些信息。所有API方法都需要认证,其中一些需要您在给定产品上具有管理员状态。

如何使用您的凭据实例化API

$service = \Dugan\Sprintly\SprintlyService::instance($myEmail, $myAuthkey);

以下所有示例都将假设$service已经使用您的凭据实例化。

由于SprintlyService实现了单例模式,我们可以在需要在不同地方重复实例化时避免重复实例化。要检索现有实例,只需调用

\Dugan\Sprintly\SprintlyService::instance()

常见功能

为了不重复多次以下代码片段,我将简单地说,大多数存储库实现以下两个方法,它们以三种不同的方式使用。我们将使用PeopleRepository进行演示,但其他存储库上也将存在相同的方法。

检索所有资源(索引)

$service->getPeopleRepository()->all()

检索单个资源(GET)

$service->getPeopleRepository()->get($id)

检索资源集合,但不是全部

$service->getPeopleRepository()->get([$firstId, $secondId])

请注意,这将执行多个HTTP请求,因此在处理多个资源时,通常更有效的是检索所有资源并在本地过滤它们。

还有用于通过服务检索实体的存储库的包装方法

$service->products()->get($id)

$service->items()->all()

产品

产品是Sprintly中的顶级实体。它具有与它相关的项目、人员、附件、标签等,所有这些都可以通过API访问。

检索所有产品

使用SprintlyService

$service->getAllProducts()

返回一个包含\Dugan\Sprintly\Entities\Product的数组

检索单个产品

使用SprintlyService

$service->getProduct($id)

返回一个\Dugan\Sprintly\Entities\Product实例

检索产品集合(但不是全部!)

使用SprintlyService

$service->getProduct([$firstId, $secondId])

使用ProductsRepository

$service->getProductsRepository()->get([$firstId, $secondId])

返回一个包含\Dugan\Sprintly\Entities\Product的数组

<<<<<<< HEAD 返回的产品将具有几个可用于您的属性

$product->getName();
$product->getCreatedBy();
$product->getId();
$product->getCreatedAt();
$product->getWebhook();

Webhook特别有用,如果您想通过提交消息将Sprintly与GitHub或Bitbucket集成以关闭项目。

产品ID

Sprintly API表示的大多数实体都只能在产品上下文中访问。

除非另有说明,从现在开始,您应该假设所有代码示例都在以下内容之前:

$service->setProductId($productId)

这将允许服务在将它们返回给您之前自动将产品ID注入适当的仓库。

请注意,SprintlyService是一个单例,因此它会保留最后设置在它上面的最后一个产品ID,直到您再次设置另一个产品ID。

用户

在Sprintly用语中,用户被称为人员和人。API包装器反映了这一点。您只能在产品上下文中检索人员。

邀请用户加入产品

$user = new \Dugan\Sprintly\Entities\Person();
$user->setFirstName('Mike');
$user->setLastName('Dugan');
$user->setEmail('foo@bar.com');
$invitedUser = $service->people()->invite($user);

项目

项目是属于产品的故事、任务、缺陷等。同样,这些只能在产品上下文中检索。

创建一个新项目

$item = new \Dugan\Sprintly\Entities\Item();
$item->setTitle('Something broke');
$item->setAssignedTo($myUserId);
$item->setTags('major,bug');
$service->items()->create($item);

检索项目子项

$item = $service->items()->get($itemId);
$children = $service->items()->children($item);

注释

附件

评论

标签