petersons / d2l-client
连接到 Brightspace/D2L API 的客户端实现。
v0.12.0
2024-03-24 21:45 UTC
Requires
- php: ^8.2
- ext-curl: *
- ext-simplexml: *
- illuminate/collections: ^10.0 || ^11.0
- illuminate/contracts: ^10.0 || ^11.0
- illuminate/support: ^10.0 || ^11.0
- nesbot/carbon: ^2.72 || ^3.0
- symfony/http-client: ^6.4 || ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
- illuminate/container: ^10.0 || ^11.0
- phpunit/phpunit: ^11.0
README
状态
此包目前正在积极开发中。
安装
- 使用 Composer 安装包
composer require petersons/d2l-client
功能
- 提供 PHP HTTP 客户端以与 D2L API 进行通信
- 提供与 Laravel 的集成
需求
- PHP 8.2 或更高版本
使用示例
use Petersons\D2L\AuthenticatedUriFactory; use Petersons\D2L\DTO\Enrollment\CreateEnrollment; use Petersons\D2L\SymfonyHttpClient; use Symfony\Component\HttpClient\HttpClient; use Symfony\Component\HttpClient\ScopingHttpClient; $client = new SymfonyHttpClient( ScopingHttpClient::forBaseUri( HttpClient::create(), 'https://petersonstest.brightspace.com', ), new AuthenticatedUriFactory( 'https://petersonstest.brightspace.com', 'appId', 'appKey', 'lmsUserId', 'lmsUserKey', ), 'orgId', 'installationCode', 'pKey', 'apiLpVersion', // e.g. 1.30 'apiLeVersion', // e.g. 1.53 ); $client->enrollUser(new CreateEnrollment(1, 2, 3));
Laravel 集成
您可以使用 vendor:publish Artisan 命令发布配置文件
php artisan vendor:publish --tag=d2l-config
在设置所有需要的配置环境变量后,您可以通过服务的构造函数对 \Petersons\D2L\Contracts\ClientInterface
接口进行类型提示并开始使用它。
本地开发
本地开发的 Docker 依赖项
- Docker 引擎 >= 19.03
- Docker Compose >= 1.25.5
-
克隆项目
git clone git@github.com:petersons/d2l-client.git
-
构建 Docker 镜像
dev/bin/docker-compose build --build-arg PHP_VERSION=8.2 php
-
安装库依赖项
dev/bin/php composer update
-
禁用 Xdebug 调试运行所有测试
dev/bin/php-test vendor/bin/phpunit
-
启用 Xdebug 调试运行所有测试
dev/bin/php-debug vendor/bin/phpunit
-
运行代码检查器
dev/bin/php-test vendor/bin/php-cs-fixer fix
-
清除 Docker 体积
dev/bin/docker-compose down --volumes