Package: laravel-scorm
Generated from api/packages/laravel-scorm
Source: api/packages/laravel-scorm. The sections after the README are extracted from the code on every docs build.
README
Section titled “README”Design for Laravel LMS
Section titled “Design for Laravel LMS”Laravel Scorm Handler is a laravel package that simplify scorm package contents (zip file) into laravel storage.
Highlight of this package:
- Zipfile handler with auto extract and store sco into database
- Store user CMI data into database
- Get user last learning data
Things you must know before you install:
Section titled “Things you must know before you install:”- You have a domain/subdomain to serve scorm content
- Scorm content folder/path must be outside from laravel application (Security issue).
- Virtual host to point domain/subdomain to scorm content directory (E.g: /scorm/hashed_folder_name/)
- Uploaded file should have the right permission to extract scorm files into scorm content directory
- This package will handle folder creation into scorm content directory (E.g: /scorm/{auto_generated_hashname}/imsmanifest.xml)
Step 1:
Section titled “Step 1:”Install from composer (For flysystem v1)
composer require devianl2/laravel-scorm:"^3.0"Install from composer (For flysystem v2/v3)
composer require devianl2/laravel-scormStep 2:
Section titled “Step 2:”Run vendor publish for migration and config file
php artisan vendor:publish --provider="Peopleaps\Scorm\ScormServiceProvider"Step 3:
Section titled “Step 3:”Run config cache for update cached configuration
php artisan config:cacheStep 4:
Section titled “Step 4:”Migrate file to database
php artisan migrateStep 5 (Optional):
Section titled “Step 5 (Optional):”Update SCORM config under config/scorm
- update scorm table names.
- update SCORM disk and configure disk @see config/filesystems.php
'disk' => 'scorm-local', 'disk' => 'scorm-s3',
// @see config/filesystems.php 'disks' => [ ..... 'scorm-local' => [ 'driver' => 'local', 'root' => env('SCORM_ROOT_DIR'), // set root dir 'visibility' => 'public', ],
's3-scorm' => [ 'driver' => 's3', 'root' => env('SCORM_ROOT_DIR'), // set root dir 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_SCORM_BUCKET'), ], ..... ]Update SCORM translations under resources/lang/en-US/scorm.php
- SCORM runtime errors exceptions handler, (Check next example)
- Copy and translate error msg with key for other locale as you wish.
After finishing don’t forget to run php artisan config:cache
Step 6 (Optional):
Section titled “Step 6 (Optional):”Usage
class ScormController extends BaseController{ /** @var ScormManager $scormManager */ private $scormManager; /** * ScormController constructor. * @param ScormManager $scormManager */ public function __construct(ScormManager $scormManager) { $this->scormManager = $scormManager; }
public function show($id) { $item = ScormModel::with('scos')->findOrFail($id); // response helper function from base controller reponse json. return $this->respond($item); }
public function store(ScormRequest $request) { try { $scorm = $this->scormManager->uploadScormArchive($request->file('file')); // handle scorm runtime error msg } catch (InvalidScormArchiveException | StorageNotFoundException $ex) { return $this->respondCouldNotCreateResource(trans('scorm.' . $ex->getMessage())); }
// response helper function from base controller reponse json. return $this->respond(ScormModel::with('scos')->whereUuid($scorm['uuid'])->first()); }
public function saveProgress(Request $request) { // TODO save user progress... }}Upgrade from version 2 to 3: Update your Scorm table:
- Add entry_url (varchar 191 / nullable)
- Change hash_name to title
- Remove origin_file_mime field
Upgrade from version 3 to 4: Update your Scorm table:
- Add identifier (varchar 191)
API endpoints
Section titled “API endpoints”None.
Permissions
Section titled “Permissions”None.
Settings
Section titled “Settings”Registered with AdministrableConfig::registerConfig (editable in the admin panel under Configuration → Settings).
None.
Events
Section titled “Events”None.
Artisan commands
Section titled “Artisan commands”None.
Scheduled jobs
Section titled “Scheduled jobs”None.
Environment variables read
Section titled “Environment variables read”AWS_ACCESS_KEY_ID, AWS_DEFAULT_REGION, AWS_SCORM_BUCKET, AWS_SECRET_ACCESS_KEY, SCORM_ROOT_DIR
