PHP code example of jjuanrivvera / canvas-lms-kit-laravel
1. Go to this page and download the library: Download jjuanrivvera/canvas-lms-kit-laravel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jjuanrivvera / canvas-lms-kit-laravel example snippets
use CanvasLMS\Api\Courses\Course;
use CanvasLMS\Api\Users\User;
// That's it! The package auto-configures everything
$courses = Course::get();
$user = User::find(123);
// 😫 Before - Manual configuration everywhere
class CourseController
{
public function __construct()
{
Config::setApiKey(env('CANVAS_API_KEY'));
Config::setBaseUrl(env('CANVAS_BASE_URL'));
Config::setAccountId(env('CANVAS_ACCOUNT_ID'));
// ... more configuration
}
}
// 😊 After - Just works!
class CourseController
{
public function index()
{
return Course::get(); // Already configured!
}
}
use CanvasLMS\Api\Courses\Course;
use CanvasLMS\Api\Enrollments\Enrollment;
use CanvasLMS\Api\Assignments\Assignment;
// Get all courses
$courses = Course::get();
// Get a specific course
$course = Course::find(123);
// Create a course
$course = Course::create([
'name' => 'Introduction to Laravel',
'course_code' => 'LAR101',
]);
// Update a course
$course->name = 'Advanced Laravel';
$course->save();
use CanvasLMS\Laravel\Facades\Canvas;
// Switch to a different Canvas instance
Canvas::connection('school_b');
$courses = Course::get(); // From school_b
// Temporarily use a different connection
Canvas::usingConnection('school_c', function () {
$course = Course::find(456); // From school_c
});
// Back to default connection
Canvas::connection('main');
use CanvasLMS\Laravel\Testing\CanvasFake;
use CanvasLMS\Api\Courses\Course;
test('creates a course in canvas', function () {
// Arrange
$fake = new CanvasFake();
$fake->fake([
'courses' => [
['id' => 123, 'name' => 'Test Course'],
],
]);
// Act
$courses = Course::get();
// Assert
expect($courses)->toHaveCount(1);
expect($courses[0]->name)->toBe('Test Course');
$fake->assertApiCallMade('GET', '/courses');
});
use CanvasLMS\Laravel\Facades\Canvas;
// These are equivalent:
Course::get(); // Direct SDK usage
Canvas::courses()::get(); // Via facade
// The facade is most useful for connection management:
Canvas::connection('tenant_2')->courses()::get();
use CanvasLMS\Config;
// Masquerade as a specific user for all subsequent calls
Config::asUser(12345);
// Make API calls as that user
$courses = Course::get(); // Returns courses visible to user 12345
// Stop masquerading
Config::stopMasquerading();
// Now calls are made as the authenticated user again
$courses = Course::get();