timacdonald / kumulos
此包已被废弃,不再维护。未建议替代包。
Kumulos PHP API SDK
v1.0.1
2017-04-22 04:17 UTC
Requires
- php: >=5.6
This package is auto-updated.
Last update: 2022-07-29 01:36:09 UTC
README
此包是Kumulos API的现代PHP SDK。
安装
composer require timacdonald/kumulos
虽然不建议这样做,因为此包不包含任何依赖项,您可以直接下载并将文件包含到您的项目中。
版本控制
此包使用语义化版本控制。您可以通过阅读规范或查看这篇帖子了解更多关于此以及为什么它很重要。
使用
创建一个Kumulos API对象,然后在API对象上调用您在API中创建的方法。
use TiMacDonald\Kumulos\Api; /** * Create our api object instance. */ $api = new Api($key, $secret); /** * Call an API method on the object, passing in an associative array of values. */ $api->createUser([ 'name' => 'Tim MacDonald', 'twitter' => '@timacdonald87', 'github' => 'timacdonald', 'website' => 'timacdonald.me' ]); /** * Check if it failed. */ if ($api->failed()) { // deal with failure, perhaps with an exception throw new Exception($api->response()->message(), $api->response()->statusCode()); } /** * Retrieve the response payload. */ $userId = $api->response()->payload();
标准化状态码
Kumulos使用自定义状态码响应,但如果您希望将这些状态码标准化为标准HTTP响应码,您可以简单地调用以下方法
// Check if it failed if ($api->failed()) { // deal with failure, perhaps with an exception throw new Exception($api->response()->normalizedMessage(), $api->response()->normalizedStatusCode()); }
Laravel中DI的配置
如果您正在使用Laravel框架,您需要将API密钥和密钥存储在环境文件(.env)中。
...
DB_USERNAME=homestead
DB_PASSWORD=secret
KUMULOS_API_KEY=your-api-key-here
KUMULOS_API_SECRET=your-secrethere
在您的./config/services.php
文件中,您可以像这样添加Kumulos服务
return [ 'kumulos' => [ 'key' => env('KUMULOS_API_KEY'), 'secret' => env('KUMULOS_API_SECRET') ], ...
很好。现在配置已经整理好,让我们将其绑定到IOC容器。在您的应用程序服务提供者的register方法中,简单地添加以下绑定方法
$this->app->bind(\TiMacDonald\Kumulos\Api::class, function ($app) { return new \TiMacDonald\Kumulos\Api( $app['config']->get('services.kumulos.key'), $app['config']->get('services.kumulos.secret') ); });
现在您可以让容器为您解析API类,而无需'new'实例。
<?php namespace App\Http\Controllers; use TiMacDonald\Kumulos\Api; class UserController extends Controller { public function store(Api $api) { $api->createUser([ 'name' => 'Tim MacDonald', 'twitter' => '@timacdonald87', 'github' => 'timacdonald', 'website' => 'timacdonald.me' ]); // } }
下一步
- 添加强制标准化响应消息和代码的能力。
- 添加Laravel服务提供者以绑定,请参阅文档。
- 抛出异常而不是检查失败。
感恩回馈
您可以使用此包,但请向我询问,您是否可以向之前或目前正在维护或为您的项目中使用的开源库做出贡献的人表示感谢。请考虑您的整个技术栈:包、框架、语言、数据库、操作系统、前端、后端等。