f-oris/easy-sdk

easy sdk framework template

2.1.4 2021-04-28 14:02 UTC

This package is auto-updated.

Last update: 2024-03-10 12:56:41 UTC


README

一个快速构建PHP版本SDK的解决方案

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

环境要求

  • php >= 5.5

基本使用

1. 安装easy-sdk-installer

通过composer进行全局安装,如下

$ composer global require f-oris/easy-sdk-installer

注意需要将 ~/.composer/vendor/bin 目录设置到 PATH 环境变量中,否则无法识别第二步中的 easy-sdk 命令

2. 创建Sdk应用

执行Sdk初始化创建命令

$ easy-sdk new sdk-demo

按照命令行提示,依次输入以下包名、介绍、作者、根命名空间,easy-sdk指令会读取当前目录信息以及Git认证信息生成默认SDK应用信息,如不需要调整,直接回车确认即可

3. Sdk组件开发

进入sdk-demo目录,执行命令创建组件

php artisan make:component Hello/Hello

命令执行完毕后,即可在src目录内可以看到Hello子目录,子目录内包含一个Hello.php文件,这个文件内只是一个空的组件类,我们需要根据业务完善相关业务代码。以输出一句“Hello, easy sdk framework.”为例,代码片段如下

<?php
// ...

class Hello extends Component
{
    /**
     * Return a hello message.
     *
     * @return string
     */
    public function hello()
    {
        return "Hello, easy sdk framework.";
    }
}

4. Sdk组件测试

tests下新建Hello文件夹,新建HelloTest.php测试类,需要继承基类tests/TestCase.php,按照常规的phpunit进行测试即可,如下

<?php
// ...

class HelloComponentTest extends TestCase
{
    /**
     * Test get a hello message from hello component.
     */
    public function testGetAHelloMessageFromHelloComponent()
    {
        $this->assertEquals('Hello, easy sdk framework.', $this->app()->get(Hello::name())->hello());
    }
}

5. 发布Sdk代码包

功能测试完毕后,按照packagist组件包发布指引,发布Sdk代码包,待composer仓库同步完毕后,即可通过composer拉取sdk组件代码包进行使用

使用扩展包扩展系统功能

Easy-sdk只是一个简单的Sdk应用框架,主要用于Sdk应用的组件管理,本身并不提供太多复杂功能,可通过引入外部组件扩展包来丰富Sdk应用的基础功能服务,以较为常用的Http服务为例,为Sdk应用引入Http功能组件。

1. 引入功能组件包

进入sdk-demo目录,通过composer引入http组件包

$ composer require f-oris/easy-sdk-httpclient

2. 发布Http组件配置文件

进入sdk-demo目录,执行artisan命令

$ php artisan vendor:publish --provider="Foris\Easy\Sdk\HttpClient\ServiceProvider"

命令执行完毕后,即可在项目目录内config文件下找到http-client.php配置文件

3. 使用Http组件服务

每一个Sdk组件都是通过Application获取到相应的组件实例才能进行调用相应的组件功能方法,获取Http组件的方式实例如下:

<?php
//...
$http = (new Application())->get(\Foris\Easy\HttpClient\HttpClient::class);

由于组件的生命周期其实是包含在Application的生命周期里面的,所以,在组件中就不能以上述方式进行调用,组件的调用方式如下:

<?php
//...
$http = $this->app()->get(\Foris\Easy\HttpClient\HttpClient::class);

另外,eask-sdk-httpclient扩展包提供了一个HasHttpClient的Trait类,开发人员可以在src/Component.php文件中引入并使用该类,简化之后的Http组件调用方式如下

<?php
//...
$http = $this->http();

Http组件扩展包提供具体功能参考f-oris/easy-sdk-httpclient扩展包说明

4. 扩展包列表

  1. easy-sdk-logger Logger组件包
  2. easy-sdk-httpclient HttpClient组件包
  3. easy-sdk-cache Cache组件包
  4. easy-sdk-develop Easy-sdk开发辅助扩展包

License

MIT License

Copyright (c) 2019-present F.oris us@f-oris.me