kylewlawrence/infinity-laravel

Laravel 对 kylewlawrence/infinity-api-client-php 包的包装

v1.0.241 2023-04-02 19:33 UTC

README

此包提供了与 Infinity API 的集成。它支持创建看板、检索和更新项目、删除引用等。

该包简单地提供了一个 Infinity 门面,作为对 kylewlawrence/infinity-api-client-php 包的包装。

注意:当前仅支持基于 bearer 令牌的认证。

安装

您可以使用 Composer 安装此包

composer require kylewlawrence/infinity-api-client-php

如果您想使用门面,也必须安装它。

// config/app.php
'aliases' => [
    ..
    'Infinity' => KyleWLawrence\Infinity\Facades\Infinity::class,
];

配置

要发布配置文件到 app/config/infinity-laravel.php,请运行

php artisan vendor:publish --provider="KyleWLawrence\Infinity\Providers\InfinityServiceProvider"

使用 环境变量 设置您的配置,可以在您的 .env 文件或服务器控制面板上

  • INF_TOKEN

API 访问令牌。您可以在 https://app.startinfinity.com/profile/developer/tokens 创建一个。

此包尚不支持 OAuth。

  • INF_DRIVER (可选)

将其设置为 nulllog 以防止从您的环境中直接调用 Infinity API。

贡献

如果您对 SDK(InfinityService 类)有任何问题/问题/请求,请前往 Infinity PHP SDK 仓库 进行那些请求。对 Laravel 包装器的拉取请求始终欢迎。我很快会跟进并制定贡献指南。在此期间,只需打开一个 issue 或创建一个 pull request 即可。

用法

门面

Infinity 门面作为 Infinity\Api\HttpClient 类实例的包装器。此类上可用的任何方法(此处有文档)都可通过门面提供。例如

// Get all Servers
Infinity::boards()->getAll();

// Create a new board
$newBoard = Infinity::boards()->create([
    'name' => 'Blah Blah',                          
    'description' => 'Bler bleman blope',                     
    'user_ids' => [1234, 1235, 12346],      
]);
print_r($newBoard);

// Delete an item
Infinity::boards('PWefUeHA8Pd')->items('8b9fee67-600c-499f-ab19-04bd9092be4e')->delete();

依赖注入

如果您不想使用门面,则可以跳过将别名添加到 config/app.php,而是将 KyleWLawrence\Infinity\Services\InfinityService 注入到您的类中。然后,您可以像在门面上一样使用此对象上的所有相同方法。

<?php

use KyleWLawrence\Infinity\Services\InfinityService;

class MyClass {

    public function __construct(InfinityService $infinity_service) {
        $this->infinity_service = $infinity_service;
    }

    public function getBoards() {
        $this->infinity_service->boards()->getAll();
    }

}

此包可在 MIT 许可证 下使用。