bakaphp / canvas-sdk-php
用于访问Kanvas API的PHP客户端库
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^6.5
- mark-gerarts/auto-mapper-plus: 2.0.0-alpha1
- vlucas/phpdotenv: ^2.4
Requires (Dev)
- codeception/codeception: 2.4
- codeception/verify: *
- phpunit/phpunit: >=7.0
- squizlabs/php_codesniffer: ^3.0
- vlucas/phpdotenv: ^2.4
This package is auto-updated.
Last update: 2023-01-08 19:15:14 UTC
README
Kanvas PHP库提供了一种方便的方式来从PHP语言编写的应用程序中访问Kanvas API。它包括一组预定义的类,用于API资源,这些类会根据API响应动态初始化自己,这使得它与广泛的Kanvas API版本兼容。此SDK基于Stripe SDK(感谢Stripe)。
用于访问Canvas API的PHP客户端库
安装
通过Composer
$ composer require bakaphp/canvas-sdk-php
用法
use Kanvas\Sdk\Auth; use Kanvas\Sdk\Kanvas; Kanvas::setApiKey($appApiKey); Auth::auth([ 'email' => 'kanvas@mctekk.com', 'password' => 'somethingpassword' ]); //Call Kanvas Functions
在DI上设置令牌
use Kanvas\Sdk\Auth; use Kanvas\Sdk\Kanvas; Kanvas::setApiKey($appApiKey); Kanvas::setAuthToken($request['token']); //Call Kanvas Functions
使用资源
每个Kanvas SDK资源的工作方式相同。它们都具有CRUD能力,其中一些还具有可以按静态函数访问的自定义函数。此外,以下是资源CRUD操作的工作方式:
创建
use Kanvas\Sdk\Users; Users::create([ 'firstname'=>'testSDK', 'lastname'=> 'testSDK', 'displayname'=> 'sdktester', 'password'=> 'nosenose', 'default_company'=> 'example sdk', 'email'=> 'examplesd5k@gmail.com', 'verify_password'=> 'nosenose' ]);
更新
Users::update('id',[ 'firstname'=>'testSDK', 'lastname'=> 'testSDK', ]);
删除
Users::delete('id');
列出
Users::all([], []);
检索
Users::retrieve('id', [], ['relationships'=>['roles']]);
CRUD操作上的自定义查询
除了每个资源CRUD操作的常规功能外,还可以使用其他参数来进行自定义查询。一个示例可以在检索操作示例中看到。
目前我们只支持Phalcon类型的数据库表查询。我们使用
- 条件
- 限制
- 排序
Phalcon Passthrough
要使用Phalcon Passthrough,首先必须在项目的控制器中将其作为trait调用。控制器本身可以命名为任何你想要的名称,但默认名称是ApiController
。此外,控制器应扩展Baka Http的BaseController
。
use Baka\Http\Api\BaseController as BakaBaseController; use Kanvas\Sdk\Passthroughs\PhalconPassthrough; use Phalcon\Http\Response; class ApiController extends BakaBaseController { use PhalconPassthrough; }
该trait本身有一个名为transporter
的函数,该函数负责向Kanvas API发送请求。必须创建两个函数;一个用于私有路由,另一个用于公共路由。它们可以是以下内容:
use PhalconPassthrough; public function publicTransporter(): Phalcon\Http\Response { return $this->transporter(); } public function privateTransporter(): Phalcon\Http\Response { return $this->transporter(); }
这两个函数都应返回一个Phalcon响应。
Passthrough路由设置
设置Passthrough路由有两种选择。第一种选择是在你的路由设置中直接调用PublicRoutes.php(包含默认的Kanvas公共路由)和PrivateRoutes.php(包含默认的Kanvas私有路由)。
use Kanvas\Sdk\Routes\PrivateRoutes; use Kanvas\Sdk\Routes\PublicRoutes;
第二种选择需要创建两个文件(一个用于公共路由,一个用于私有路由),这些文件返回所需的Kanvas路由作为数组。这些文件应该是这样的:
use Baka\Router\Route; return [ Route::crud('/users')->controller('ApiController')->action('privateTransporter')->notVia('post'), Route::crud('/companies')->controller('ApiController')->action('privateTransporter'), Route::crud('/roles')->controller('ApiController')->action('privateTransporter'), Route::crud('/locales')->controller('ApiController')->action('privateTransporter'), Route::crud('/currencies')->controller('ApiController')->action('privateTransporter'), Route::crud('/apps')->controller('ApiController')->action('privateTransporter') ]
这些文件必须返回数组,每个路由都应是一个Baka Router Route。
之后,无论您选择哪个选项,都应该使用 RouteConfigurator,它有两个功能,用于合并您自己的路由和 Kanvas 的路由。
use Kanvas\Sdk\Routes\RouteConfigurator; $publicRoutes = RouteConfigurator::mergePublicRoutes($publicRoutes, appPath('api/routes/publicRoutes.php')); $privateRoutes = RouteConfigurator::mergePrivateRoutes($privateRoutes, appPath('api/routes/privateRoutes.php'));
mergePublicRoutes
将 Kanvas 的公共路由与您自己的公共路由合并。它还会接收您定义的自定义公共路由文件的路径。
mergePrivateRoutes
将 Kanvas 的私有路由与您自己的私有路由合并。它也会接收您定义的自定义私有路由文件的路径。
这两个函数都返回一个合并后的数组。
SDK 模型
此 SDK 还提供了根据 Kanvas 用户和公司进行搜索的功能。这两个模型将向 Kanvas API 发送请求,并像典型的 Phalcon 模型一样工作,具有 find
和 findFirst
函数。要使用它们,请按照以下步骤操作
use Kanvas\Sdk\Users; use Kanvas\Sdk\Companies; Users::find(): Users::findFirst([ 'conditions'=> 'email = ?0' 'bind'=>[example] ]); Companies::find(); Companies::findFirst([ 'conditions'=> 'email = ?0' 'bind'=>[example] ]);
如前所述,这两个模型作为 Phalcon 模型工作,它们可以接受所有可传递给它们的参数。
注意
:您必须验证身份才能使用这些模型,并且您的 API 密钥也必须设置。
变更日志
有关最近变更的更多信息,请参阅 CHANGELOG。
测试
$ composer test
贡献
有关详细信息,请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT。
安全
如果您发现任何与安全相关的问题,请通过电子邮件发送给 max@mctekk.com,而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。