ciromattia/laravel-teamwork

Teamwork项目管理API的PHP包装器

v1.3 2018-04-26 17:26 UTC

README

teamwork-developer

Scrutinizer Code Quality Code Coverage Build Status Release License

此包旨在将Teamwork API实现为Laravel 5的服务提供者。

安装

通过composer添加此包

composer require "ciromattia/laravel-teamwork:~1.3"

Laravel设置

Service Provider在Laravel 5.5+中是自动可发现的。

如果您使用的是Laravel 5.4或更早版本,您需要手动将以下内容添加到您的config/app.php文件中。

'providers' => [
    ...
    'Ciromattia\Teamwork\TeamworkServiceProvider',
],

然后,将外观添加到您的aliases数组中

'aliases' => [
    ...
    'Teamwork' => 'Ciromattia\Teamwork\Facades\Teamwork',
],

配置

teamwork数组添加到您的config/services.php文件中

...
'teamwork' => [
    'key'  => 'YourSecretKey',
    'url'  => 'YourTeamworkUrl'
],

使用

使用此功能有两种方式:第一种是通过Teamwork外观,如下所示

Teamwork::people()->all();

如果您想使用依赖注入来简化应用程序的测试,Service Provider将绑定Ciromattia\Teamwork\Factory。以下是一个使用依赖注入的示例

Route::get('/test', function(Ciromattia\Teamwork\Factory $teamwork) {
   $activity = $teamwork->activity()->latest();
});

方法

可用的方法模拟Teamwork实体的小写形式并查询同名的API,因此您可以使用单个项目进行检索,例如

Teamwork::project($project_id)->find();

所有实体都通用的常用方法有

  • all() - 返回所有查询结果(即所有实体对象)。
  • find($id) - 返回具有指定ID的单个对象。
  • create($data) - 使用$data参数创建单个对象。
  • update($data) - 使用$data参数更新单个对象。
  • delete($id) - 删除具有指定ID的单个对象。

目前实现的实体包括

以下特殊实体没有上述常用方法

不带Laravel的配置

如果您不使用Laravel,可以像这样实例化类

require "vendor/autoload.php";

use GuzzleHttp\Client as Guzzle;
use Ciromattia\Teamwork\Client;
use Ciromattia\Teamwork\Factory as Teamwork;

$client     = new Client(new Guzzle, 'YourSecretKey', 'YourTeamworkUrl');
$teamwork   = new Teamwork($client);

现在您可以开始使用了!

示例

Teamwork API的并非所有功能都得到了支持,但您仍然可以完成很多工作!以下是如何访问项目、公司等的示例。要处理特定对象,请传入ID以执行操作。数据可以通过创建和编辑传递。

要查看更多示例,请访问文档

// create a project
$teamwork->project()->create([
    "name" => "My New Amazing Project",
    "description" => "This is a project that I will dedicate my whole life too",
    "companyId" => "999"
]);

// get the latest activity on a project
$teamwork->project($projectID)->activity();

路线图

2.0版本发布

  • 添加分页支持
  • 添加对评论的支持
  • 添加对权限的支持
  • 添加对类别的支持
  • 添加对人员状态的支持
  • 添加对文件的支持
  • 添加对笔记本的支持

致谢

这个库是Ross Edman现在已废弃的Teamwork 5 PM API Bridge的演变。