cblink-service/foundation

包描述在这里。

v1.4.4 2023-07-22 13:42 UTC

README

.

安装

$ composer require cblink-service/foundation -vvv

使用

容器

容器是整个项目的核心,继承了 Pimple\Container,也就是一个容器。你所使用的 $foundation->order $foundation->config $foundation->user 等等都是因为这个是一个容器。其中包含一个 $providers 服务提供者的数组属性。

服务提供者

容器的最佳表现。接上面所说的,你可以在 Container 中注册多个服务提供者,新建的服务提供者需要实现 Pimple\ServiceProviderInterface,并补充完 register 方法,其实就是 new 一个类在 容器中,参考这里

初始化

// 继承基类
class App extends \Cblink\Service\Foundation\Container {
    protected array $providers = [
        // 自定义服务提供者
        \Cblink\Service\Foundation\Providers\AccessTokenServiceProvider::class,
    ];
}

$app = new App([
    // 接口的基础请求地址
    'base_url' => '',
    // 使用 guzzle 时所需要的默认配置
    'guzzle' => [
        'timeout' => 5.0,
        'verify' => false,
    ],
])

API

凡是写 SDK 都需要去新建一个 Api 的类,这个类需要去继承 Cblink\Service\Foundation\BaseApiCblink\Service\Foundation\BaseRequestApi

BaseApi类中默认包含了实现认证的中间件,需要先将access_token的服务提供者引入容器中,完成在 header 中增加 Authorization已达到完成认证的目的。参考这里 如SDK中提供的认证机制不满足使用,可以自行实现 access_token 类,只需要将类实现 Cblink\Service\Foundation\Contracts\AccessTokenInterface 中的方法即可

BaseRequestApi 通常用于无需认证的接口。

# 在Api类中获取配置
class Api extends \Cblink\Service\Foundation\BaseRequestApi {

    public function getOrderLists()
    {
        // 所有的接口请求,默认为json格式返回,返回值将会转换成数组返回
       /* @var array $response */
       $response = $this->httpGet('/url', ['query' => []]); 
       
       // post请求
       $response = $this->httpPost('/url', ['data']); 
       
       // put 请求
       $this->httpPut();
       
       // delete 请求
       $this->httpDelete('/url', ['query']) 
    }
    
    
    // 可以再Api中声明名为 getBaseUrl 的方法,此方法声明后将会覆盖 config 中的 base_url
    public function getBaseUrl()
    {
        return 'http://www.cblink.net';
    }
}

贡献

你可以通过以下三种方式之一进行贡献

  1. 使用 问题跟踪器 提交错误报告。
  2. 问题跟踪器 上回答问题或修复错误。
  3. 贡献新功能或更新 wiki。

代码贡献过程并不非常正式。你只需要确保遵循 PSR-0、PSR-1 和 PSR-2 编码规范。任何新的代码贡献都必须伴随相应的单元测试(如果适用)。

许可证

MIT