A PHP SDK for interacting with the Algebrakit Web Service API.
Install the SDK into your project with Composer:
composer require algebrakit/sdk-php- PHP 8.0 or higher
- Guzzle HTTP client
<?php
require_once 'vendor/autoload.php';
use Algebrakit\SDK\Services\SessionService;
use Algebrakit\SDK\Models\Requests\CreateSessionRequest;
use Algebrakit\SDK\Models\Shared\ExerciseById;
// Initialize the SessionService with your API key
$apiKey = 'your-api-key-here';
$sessionService = new SessionService($apiKey);// Create a session for an exercise
$createSessionRequest = new CreateSessionRequest(
exercises: [new ExerciseById('your-exercise-id', 'latest')]
);
$createSessionResponse = $sessionService->createSession($createSessionRequest);
foreach ($createSessionResponse as $response) {
if ($response->success && !empty($response->sessions)) {
$session = $response->sessions[0];
echo "Session created: " . $session->sessionId . "\n";
}
}use Algebrakit\SDK\Models\Requests\SessionScoreRequest;
$sessionScoreRequest = new SessionScoreRequest('your-session-id');
$sessionScoreResponse = $sessionService->getSessionScore($sessionScoreRequest);
foreach ($sessionScoreResponse->questions as $question) {
echo "Question: {$question->id}, Marks: {$question->scoring->marksEarned}/{$question->scoring->marksTotal}\n";
}use Algebrakit\SDK\Models\Requests\ExerciseValidateRequest;
$validateRequest = new ExerciseValidateRequest(exerciseId: 'your-exercise-id');
$validateResponse = $sessionService->validateExercise($validateRequest);
echo "Exercise valid: " . ($validateResponse->valid ? 'Yes' : 'No') . "\n";Demonstrates SDK API calls with text output.
-
Install dependencies:
composer install
-
Update the API key in
demo/various-functions.php:$apiKey = 'your-actual-api-key';
-
Run the demo:
php demo/various-functions.php
Renders a working Algebrakit exercise in the browser.
-
Install dependencies:
composer install
-
Update the configuration in
demo/play-exercise.php:$apiKey = 'your-actual-api-key'; $apiUrl = 'https://api.algebrakit.com'; $widgetUrl = 'https://widgets.algebrakit.com';
-
Start a local PHP server:
php -S localhost:8000
-
Open
http://localhost:8000/demo/play-exercise.phpin your browser.
createSession(CreateSessionRequest $request): array- Create new exercise sessionsgetSessionScore(SessionScoreRequest $request): SessionScoreResponse- Get session scoring resultsgetSessionInfo(SessionInfoRequest $request): SessionInfoResponse- Get detailed session informationretrieveSessions(SessionRetrieveRequest $request): SessionRetrieveResponse- Retrieve existing sessionslockOrUnlockSession(SessionLockRequest $request): SessionLockResponse- Lock or unlock sessionsvalidateExercise(ExerciseValidateRequest $request): ExerciseValidateResponse- Validate an exercisegetExerciseInfo(ExerciseInfoRequest $request): ExerciseInfoResponse- Get exercise information
You can specify exercises in three ways:
-
By Exercise ID:
new ExerciseById('exercise-id', 'latest')
-
By Exercise Specification:
new ExerciseBySpec($exerciseSpecObject)
-
By Session ID (reuse exercise from existing session):
new ExerciseBySession('existing-session-id')
All service methods throw RuntimeException if the API request fails:
try {
$response = $sessionService->createSession($request);
} catch (RuntimeException $e) {
echo "Error: " . $e->getMessage() . "\n";
}MIT License