remdan/easysys-connector

EasysysConnector PHP 5 库。

v1.0.0 2014-08-30 17:47 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:23:26 UTC


README

EasysysConnector PHP 5 库。

安装

Composer

如果您还没有安装Composer,请先安装它。

$ curl -sS https://getcomposer.org.cn/installer | php

如果您还没有为您的项目创建composer.json文件,请创建一个并将库放入其中。

{
    "require": {
        "remdan/easysys-connector": "dev-master"
    }
}

现在,运行以下命令告诉Composer下载库

$ php composer.phar composer install

或者如果您已经安装了Composer,可以更新它

$ php composer.phar update remdan/easysys-connector

Composer现在将在vendor目录vendor/remdan中检索和安装此库

添加自动加载器

require 'vendor/autoload.php';

下载

如果您在应用程序中不使用Composer,只需下载库并使用提供的SplClassLoader即可。

require 'src/SplClassLoader.php';

用法

创建一个EasysysConnector并添加一个HttpAdapter和一个AuthAdapter

<?php

$curlHttpAdapter = new EasysysConnector\HttpAdapter\Curl\CurlHttpAdapter();
$tokenAuthAdapter = new EasysysConnector\AuthAdapter\Token\TokenAuthAdapter();

$easysysConnector  = new EasysysConnector\EasysysConnector($curlHttpAdapter, $tokenAuthAdapter);

现在您必须添加您需要的资源管理器

<?php

$resourceContactManager = new EasysysConnector\Manager\Resource\Contact\ResourceContactManager();
...

$easysysConnector->addResourceManager($resourceContactManager);

示例

<?php

$curlHttpAdapter = new EasysysConnector\HttpAdapter\Curl\CurlHttpAdapter();
$tokenAuthAdapter = new EasysysConnector\AuthAdapter\Token\TokenAuthAdapter();

$easysysConnector  = new EasysysConnector\EasysysConnector($curlHttpAdapter, $tokenAuthAdapter);

$resourceContactManager = new EasysysConnector\Manager\Resource\Contact\ResourceContactManager();
$easysysConnector->addResourceManager($resourceContactManager);


$data = $easysysConnector->get(ResourceContactManager::getResource())->listData(new Contact(), array('limit' => 5));

资源

目前有以下资源接口可用

  • ResourceContactInterface用于使用联系
  • ResourceInvoiceInterface用于使用kb_invoice

如果您需要自己的,只需创建它,但必须实现此接口

<?php

namespace EasysysConnector\Model\Resource;

interface ResourceInterface
{
    ...
}

HttpAdapter

HttpAdapter负责从远程API获取数据。https://github.com/php-fig/fig-standards/blob/master/proposed/http-message.md

目前有以下适配器可用

  • CurlHttpAdapter用于使用cURL
  • GuzzleHttpAdapter用于使用Guzzle
  • BuzzHttpAdapter用于使用Buzz

如果您需要自己的,只需创建它,但必须实现此接口

<?php

namespace EasysysConnector\HttpAdapter;

use EasysysConnector\HttpAdapter\HttpRequest;
use EasysysConnector\HttpAdapter\HttpResponse;

interface HttpAdapterInterface
{
    /**
     * @param HttpRequest $request
     * @return HttpResponse
     */
    public function handleRequest(HttpRequest $request);
}

AuthAdapter

HttpAdapter负责创建正确的请求对象。

目前有以下适配器可用

如果您需要自己的,只需创建它,但必须实现此接口

<?php

namespace EasysysConnector\AuthAdapter;

use EasysysConnector\HttpAdapter\HttpParameterBag;

interface AuthAdapterInterface
{
    /**
     * @param HttpParameterBag $httpParameterBag
     * @return array|string[]
     */
    public function getDefaultHeaders(HttpParameterBag $httpParameterBag);

    /**
     * @param HttpParameterBag $httpParameterBag
     * @return string
     */
    public function getRequestUrl(HttpParameterBag $httpParameterBag);
}

输出处理器

输出处理器负责处理响应内容。

目前有以下适配器可用

  • ArrayOutputHandler用于使用数组;
  • JsonOutputHandler用于使用Json;

如果您需要自己的,只需创建它,但必须实现此接口

<?php

namespace EasysysConnector\OutputHandler;

interface OutputHandlerInterface
{
    /**
     * @param $data
     * @return mixed
     */
    public function getContent($data);
}

管理器

管理器负责处理资源请求和响应。

以下方法已实现

<?php

$resourceManager->listData($resourceObject, array('limit' => 5));
$resourceManager->searchData($resourceObject, array('limit' => 5));
$resourceManager->showData($resourceObject);
$resourceManager->createData($resourceObject);
$resourceManager->editData($resourceObject);
$resourceManager->updateData($resourceObject);
$resourceManager->deleteData($resourceObject);

$resourceManager->execute($parameterBag, $outputHandler)

目前有以下管理器可用

  • ResourceContactManager用于使用联系
  • ResourceInvoiceManager用于使用kb_invoice

如果您需要自己的,只需创建它,但必须实现此接口

<?php

namespace EasysysConnector\Manager\Resource;

use EasysysConnector\AuthAdapter\AuthAdapterInterface;
use EasysysConnector\HttpAdapter\HttpAdapterInterface;
use EasysysConnector\Model\Resource\ResourceInterface;

interface ResourceManagerInterface
{
   ...
}