一个与 iVvy API 1.0 兼容的、遵循 PSR-4 和 PSR-2 的 PHP 7.1 SDK

0.2.7 2017-12-18 15:31 UTC

README

一个遵循 PSR-4 的 SDK,用于与 iVvy API 1.0 一起工作

安装

通过 composer 安装。

$ composer require fundacion-ciudad-del-saber/ivvy-sdk-php:^0.1

如何使用?

此软件包通过 IvvyJobFactory 类公开了 2 个高级 API。了解这一点很重要,因为 此软件包的设计主要是为了您使用这些 2 个类以及 Fcds\Ivvy\Model 命名空间内的实体

Ivvy 类是您与 iVvy 通信的客户端类。它公开了端点,这些端点直接映射到命名空间的操作(根据 iVvy API 1.0 文档)。

$ivvy = (new Fcds\Ivvy\IvvyFactory)->newInstance($apiKey, $apiSecret);

$companies = $ivvy->getCompanyList();

JobFactory 类是一个特殊类,旨在与 iVvy 的 batch 命名空间中的异步作业队列一起工作,特别是与 run 操作。它基本上抽象了要发送的作业的创建。到 0.1.0 版本发布时,尚无工厂或“简单”的方法来实例化此类,因此我们只需传递所有具体的依赖项。

$jobFactory = new Fcds\Ivvy\JobFactory(
    new Fcds\Ivvy\Model\Validator\AddCompanyValidator,
    new Fcds\Ivvy\Model\Validator\UpdateCompanyValidator,
    new Fcds\Ivvy\Model\Validator\AddContactValidator,
    new Fcds\Ivvy\Model\Validator\UpdateContactValidator
);

$companyToBeAdded = new Fcds\Ivvy\Model\Company([ ... ]);
$companyToBeUpdated = new Fcds\Ivvy\Model\Company([ ... ]);

$addJob = $jobFactory->newAddCompanyJob($companyToBeAdded);
$updateJob = $jobFactory->newUpdateCompanyJob($companyToBeUpdated);

$asyncId = $ivvy->run([$addJob, $updateJob]);

在特定情况下,对于添加或更新实体的作业,JobFactory 将在那些实体上调用验证方法,传递相应的规范。简单来说,每次您尝试使用不具有相应作业适当值的实体创建作业时,它将抛出 BusinessRuleException。(例如:您尝试更新一家公司,但公司对象没有设置 ID)。

try {
    $companyWithInvalidValues = new Fcds\Ivvy\Model\Company([ ... ]);

    $jobFactory->newAddCompanyJob($companyWithInvalidValues);
} catch (Fcds\Ivvy\Model\BusinessRuleException $e) {
    error_log($e->getMessage()); // An exception will be thrown here
}

测试

运行测试套件
$ vendor/bin/phpunit
带有覆盖率的运行测试套件
$ vendor/bin/phpunit --testdox --coverage-text
运行代码检查
$ vendor/bin/phpcs
修复代码检查问题
$ vendor/bin/phpcbf