petersons / d2l-client
Client implementation for connecting to Brightspace/D2L APIs.
Installs: 3 614
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 1
Open Issues: 0
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
Status
This package is currently in active development.
Installation
- Require the package using Composer:
composer require petersons/d2l-client
Features
- Provides a PHP HTTP client to communicate with D2L APIs
- Provides integration with Laravel
Requirements
- PHP 8.2 or greater
Usage example
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 integration
You may publish the configuration file using the vendor:publish Artisan command:
php artisan vendor:publish --tag=d2l-config
After setting up all the needed config env variables you can typehint
the \Petersons\D2L\Contracts\ClientInterface
interface via the constructor of your service and start using it.
Local development
Docker dependencies for local development:
- Docker Engine >= 19.03
- Docker Compose >= 1.25.5
-
Clone project
git clone git@github.com:petersons/d2l-client.git
-
Build the Docker image
dev/bin/docker-compose build --build-arg PHP_VERSION=8.2 php
-
Install library dependencies
dev/bin/php composer update
-
Running all tests with Xdebug debugging disabled
dev/bin/php-test vendor/bin/phpunit
-
Running all tests with Xdebug debugging enabled
dev/bin/php-debug vendor/bin/phpunit
-
Running linter
dev/bin/php-test vendor/bin/php-cs-fixer fix
-
Clear Docker volumes
dev/bin/docker-compose down --volumes