kly/onesdk

One SDK 发布者 PHP 包

2.3.40 2024-08-28 02:17 UTC

README

Scrutinizer Code Quality Build Status Code Intelligence Status

此 SDK 是为简化 ONE APP 的集成和 API 使用而创建的。

仅限发布者

先决条件

  • PHP 版本 >=5.3.3

安装

如果您正在使用 composer,可以使用 composer require kly/onesdk 获取它,并设置完毕。加载自动加载器并调用所需的类或工厂。

用法

使用此 SDK,需要进行以下几个基本步骤:

  1. 创建和加载凭证(client_id 和 client_secret 或分开的 单次使用 access_token)
  2. 将内容实例化到 \One\Model\Article 对象中
  3. 附加任何必要的详细信息(照片、视频、画廊或额外页面)
  4. 实例化 \One\Publisher 对象
  5. 通过 Publisher 上的 submitArticle 方法发送文章对象

以下是执行这些步骤的一些示例代码

加载凭证

参考 loadTestEnv() 方法。

实例化发布者对象

$env = \loadTestEnv();
        $this->publisher = new Publisher(
            $env['YOUR_CLIENT_ID'],
            $env['YOUR_CLIENT_SECRET']
        );

发布

如果您要发布文章,需要执行以下步骤:

  1. 实例化文章对象
$article = new Article(
            'Eius ad odit voluptatum occaecati ducimus rerum.',
            'Facilis occaecati sequi animi corrupti. Ex sit voluptates accusamus. Quidem eum magnam veniam odio totam aut. Nobis possimus totam quasi tempora consectetur iste. Repellendus est veritatis quibusdam dicta. Sapiente modi perferendis quidem repudiandae voluptates.',
            'https://www.zahn.de/home/',
            'dummy-' . rand(0, 999),
            Article::TYPE_TEXT,
            Article::CATEGORY_BISNIS,
            "Hans-Friedrich Hettner B.Sc.",
            "Dolorum expedita repellendus ipsam. Omnis cupiditate enim. Itaque alias doloribus eligendi.",
            "distinctio",
            "2013-05-25"
        );
  1. 如果文章包含附件,则附加附件

文章支持多种类型的附件,例如:照片、页面。

$photo = new Photo(
            'https://aubry.fr/',
            Photo::RATIO_RECTANGLE,
            "Rerum asperiores nulla suscipit ex. Eligendi vero optio architecto dignissimos. Omnis autem ab ad hic quaerat omnis.",
            "Eum assumenda ab accusamus quam blanditiis."
        );
$article->attachPhoto($photo);
  1. 通过实例化发布者对象将文章发布到 ONE App REST API。

$this->publisher->submitArticle($article);

检索

您可以通过在发布者对象上调用 listArticle() 来检索所有文章。

$this->publisher->listArticle();

贡献步骤

  1. 将原始存储库叉到您的 github 存储库。

  2. 从您的存储库克隆

    git clone https://github.com/your_username/onesdk.git

  3. 要跟踪原始存储库的更新,请运行以下命令

    git remote add upstream https://github.com/KLYgarage/onesdk.git

    git pull upstream master

  4. 创建分支。 请记住,分支名称应表达您所做的工作。

    git checkout -b my-topic-branch

  5. 不要忘记安装 composer 依赖项

    composer install

  6. 修改 .env.example 文件,以反映正确的凭证。

    CLIENT_ID=$CLIENT_ID
    
    CLIENT_SECRET=$CLIENT_SECRET
    
    To get ACCESS_TOKEN, run the following commands using curl :
    
    curl -X POST "https://dev.one.co.id/oauth/token" \
     -H "Accept: application/json" \
     -d "grant_type"="client_credentials" \
     -d "client_id"="YOUR CLIENT ID" \
     -d "client_secret"="YOUR CLIENT SECRET";
     
    
  7. 将 .env.example 保存为 .env

  8. 当您准备好将更改提交给原始存储库时,是时候创建 pull request。要创建 pull request,请运行以下命令

    git push -u origin my-topic-branch

  9. 转到您的 github 账户,在 pull request 选项卡上添加您的评论。详细说明,使用祈使句、表情符号使其更清晰。

  10. 等待反馈。

PHP CS Fixer

PHP CS Fixer 旨在修复编码标准。因此,请记住!在创建 pull request 之前始终运行 PHP CS Fixer。

composer run cs-fix

测试

如何运行测试

打开命令提示符或终端,导航到项目目录并运行命令 composer run test

> php ./phpunit --bootstrap ./test/bootstrap.php ./test/
PHPUnit 4.8.36 by Sebastian Bergmann and contributors.

..................

Time: 14 seconds, Memory: 10.00MB

OK (18 tests, 98 assertions)

要查看正在运行的测试,可以使用命令 composer run test:verbose

> php ./phpunit --bootstrap ./test/bootstrap.php ./test/
PHPUnit 4.8.36 by Sebastian Bergmann and contributors.

Starting test 'One\Test\Unit\PublisherTest::testSubmitArticleWithoutAttachment'.
.
Starting test 'One\Test\Unit\PublisherTest::testSubmitArticleWithPhotos'.
.
Starting test 'One\Test\Unit\PublisherTest::testSubmitArticleWithPage'.
.
Starting test 'One\Test\Unit\PublisherTest::testSubmitArticleWithGallery'.
.
Starting test 'One\Test\Unit\PublisherTest::testSubmitArticleWithVideo'.

Time: 12.34 seconds, Memory: 10.00MB

OK (18 tests, 98 assertions)

编写测试时需要注意的事项

  1. 确保为类上的每个核心功能创建测试用例。
  2. 在发送请求之前,始终将您期望或创建的数据与您从响应中获取的实际数据进行比较。
  3. 使用正确的断言。避免使用 assertEquals 来比较数组,因为有时您从服务器获得的数组(响应)值与您期望的数组的顺序不同。例如
$array = [
  '0'=>'500',
  '1'=>'A'
];

$arrayFromResponse = [
  '0'=>'A',
  '1'=>'500
];

我们不需要对 $arrayFromResponse 进行排序以使顺序一致,而是可以使用 assertTruearray_diff 结合使用

assertTrue(empty(array_diff($array, $arrayFromResponse)));