This package is currently in active development.
- Require the package using Composer:
composer require petersons/d2l-client
- Provides a PHP HTTP client to communicate with D2L APIs
- Provides integration with Laravel
- PHP 8.2 or greater
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));
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.
Docker dependencies for local development:
- Docker Engine >= 19.03
- Docker Compose >= 1.25.5
-
Clone project
git clone [email protected]: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