larsnieuwenhuizen / clubhouse-connector
通过php连接和接口Clubhouse的服务包
1.0.0
2020-08-06 20:01 UTC
Requires
- php: >=7.4
- ext-json: *
- guzzlehttp/guzzle: ^6.5
- psr/log: ^1.1
- symfony/yaml: ^4
Requires (Dev)
- codeclimate/php-test-reporter: ^0.4.4
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-20 20:00:49 UTC
README
Clubhouse 连接器
此库允许您通过一个连接器轻松地使用Clubhouse API集成。
单一入口点
您只需使用配置文件构造连接器对象。配置通过yaml完成,如下所示。
config.yaml
Clubhouse: api: uri: 'https://api.clubhouse.io/api/v3/' token: 'myApiTokenHere'
创建连接器
$connector = new Connector('config.yaml');
使用Clubhouse组件
组件通过它们各自的服务访问,如下所示
$connector->getEpicsService()->list();
这正如您所期望的,调用史诗列表。这将返回一个史诗对象集合。
对象化
所有Clubhouse资源都将转换为每个组件的域对象。
资源模型和集合
所有资源类型都将有自己的模型,在检索多个项目时,模型将收集在IteratorAggregate集合中。
这样做是为了使检索到的集合可以立即迭代,并且数据将转换为模型,这样我们就可以以更具体的方式使用数据,并在以后更好地利用数据。
例如
$epics = $connector->epics()->list(); foreach ($epics as $epic) { echo $epic->getName(); echo $epic->getCreatedAt()->format('d-m-Y'); }
使用服务
将为Clubhouse和子组件(标签、类别、评论等)内的所有组件创建服务。
要使用服务,您可以通过如上所述的连接器访问它。
CRUD示例
- 创建一个史诗
$epic = new Epic(); $epic->setName('My first created Epic') ->setDescription('This is the description for my Epic'); $createdEpic = $connector->epics()->create($epic);
- 更新现有的史诗
$existingEpic = $connector->epics()->get(1); $existingEpic->setName('A new name for this Epic'); $updatedEpic = $connector->epics()->update($existingEpic);
- 删除一个史诗
$connector->epics()->delete(1);
- 列出所有史诗
$collection = $connector->epics()->list();
当前可用的资源
- 史诗
- 里程碑
- 项目
- 故事
$connector->epics() $connector->milestones() $connector->projects() $connector->stories()
PSR日志记录
如果您觉得需要在某处捕获日志,可以添加自己的日志记录器 :) 您需要的是一个与PSR-3日志记录器接口交互的日志记录器。
有了这个,只需用如下方式构造连接器即可
$logger = new MyOwnPsrLogger(); $connector = new Connector('config.yaml', $logger);
魔术方法
我在连接器中使用的函数和方法名,如 getEpicsService()
,但为了使其与Clubhouse命名更相关,并使名称更简短,我为服务添加了魔术方法调用。
因此,除了调用 $connector->getEpicsService()->list()
之外,您还可以调用 $connector->epics()->list()