roskovynskyi / ubki
UBKI PHP 集成
1.0.0
2020-11-04 16:19 UTC
Requires
- php: >=7.4
- ext-simplexml: *
- guzzlehttp/guzzle: ^6.3
- horat1us/environment-config: ^1.2
- myclabs/php-enum: ^1.5
- nesbot/carbon: ^2.24 || ^1.33
- psr/log: ^1.0
- psr/simple-cache: ^1.0
Requires (Dev)
- chillerlan/php-cache: ^1.0
- gamez/psr-testlogger: ^2.0
- phpunit/phpunit: ^9.1
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-05 00:47:37 UTC
README
安装
使用 composer
composer require roskovynskyi/ubki
配置
使用相应的 ConfigInterface
来配置所需的服务的细节。
推送(导出): Push\ConfigInterface
拉取(导入): Pull\ConfigInterface(开发中)
每个服务还需要一个 Authorization\Provider
提供程序进行认证。
配置
数据导出/向注册表发送请求
<?php use Wearesho\Bobra\Ubki; $config = new Ubki\Push\Config( 'username', 'password', $mode = Ubki\Authorization\ConfigInterface::MODE_TEST // или MODE_PRODUCTION );
数据导入(开发中)
<?php use Wearesho\Bobra\Ubki; $config = new Ubki\Pull\Config( 'username', 'password', $mode = Ubki\Authorization\ConfigInterface::MODE_TEST // или MODE_PRODUCTION );
环境配置
每个 Push
/Pull
服务都实现了自己的 EnvironmentConfig
,它将从中提取环境变量。
如果它们未按标准安装,则将根据其实现的 ConfigInterface
接口取默认值。
主要变量(取决于服务类型)
导出服务
导入服务
使用示例
建议使用依赖注入容器。
示例:向注册表发送请求以获取已发送报告的状态
<?php use Wearesho\Bobra\Ubki; $authProvider = new Ubki\Authorization\Provider( new \GuzzleHttp\Client(), // любой клиент, имплементирующий \GuzzleHttp\ClientInterface new Psr\Log\NullLogger() // любой логгер, имплементирующий \Psr\Log\LoggerInterface ); $service = new Ubki\Push\Registry\Service( new Ubki\Push\EnvironmentConfig("UBKI_"), $authProvider, new \GuzzleHttp\Client(), // любой клиент, имплементирующий \GuzzleHttp\ClientInterface new Psr\Log\NullLogger() // любой логгер, имплементирующий \Psr\Log\LoggerInterface ); $request = new Ubki\Push\Registry\Rep\Request(...); $response = $service->send($request);
该库处于开发中
-
认证(Authorization)API 文档
-
获取数据(拉取)
-
发送数据(推送)
-
发送获取传输状态请求(Push\Registry)
要求
- PHP >=7.1
- 实现 PSR-16 Simple Cache 以保存授权密钥
开发
仓库代码编写要求
- 所有更改都通过创建单独的 Pull Request 来加载
- 所有代码都必须符合 PSR-2。建议使用
composer lint
进行检查。对于格式修复,请使用composer phpcbf
。 - 除了依赖项之外,所有功能都应该有100%的测试覆盖率
- 对于网络请求,必须使用
guzzlehttp/guzzle
- 处理时间需要使用
nesbot/carbon
- 所有影响公共接口的更改(在新的版本中添加)都必须记录在 变更日志 中
- 所有测试类都必须包含 doc 块中的
@internal