f-oris / easy-sdk
easy sdk framework template
Installs: 1 586
Dependents: 3
Suggesters: 0
Security: 0
Stars: 9
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=5.5
- f-oris/easy-sdk-framework: ^2.0
- f-oris/easy-sdk-logger: ^2.0
Requires (Dev)
- f-oris/easy-sdk-develop: ^2.0
- phpunit/phpunit: ^4.0
README
一个快速构建PHP版本SDK的解决方案
环境要求
- 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. 扩展包列表
- easy-sdk-logger Logger组件包
- easy-sdk-httpclient HttpClient组件包
- easy-sdk-cache Cache组件包
- easy-sdk-develop Easy-sdk开发辅助扩展包
License
MIT License
Copyright (c) 2019-present F.oris us@f-oris.me