PHPackages                             devianl2/laravel-scorm - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. devianl2/laravel-scorm

ActiveLibrary

devianl2/laravel-scorm
======================

PEOPLEAPS scorm package

4.0.1(3y ago)45203.0k↑10.3%35[8 issues](https://github.com/devianl2/laravel-scorm/issues)[1 PRs](https://github.com/devianl2/laravel-scorm/pulls)2MITPHPPHP ^7.4 || ^8.0

Since Apr 23Pushed 2mo ago9 watchersCompare

[ Source](https://github.com/devianl2/laravel-scorm)[ Packagist](https://packagist.org/packages/devianl2/laravel-scorm)[ RSS](/packages/devianl2-laravel-scorm/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (38)Used By (2)

Laravel Scorm Handler
=====================

[](#laravel-scorm-handler)

If you want to be a collaborator, feel free to raise a ticket and mention your email.

*Design for Laravel LMS*
------------------------

[](#design-for-laravel-lms)

[![N|Solid](https://camo.githubusercontent.com/7a3c65e109ebb3744896fd05f729f0f95f631929be9e4a7ffa5ee2797cb7ddf9/68747470733a2f2f70656f706c656170732e636f6d2f77702d636f6e74656e742f75706c6f6164732f323032302f31312f70322d30312d30312e706e67)](https://www.peopleaps.com)

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:*
------------------------------------------

[](#things-you-must-know-before-you-install)

1. You have a domain/subdomain to serve scorm content
2. Scorm content folder/path must be outside from laravel application (Security issue).
3. Virtual host to point domain/subdomain to scorm content directory (E.g: /scorm/hashed\_folder\_name/)
4. Uploaded file should have the right permission to extract scorm files into scorm content directory
5. This package will handle folder creation into scorm content directory (E.g: /scorm/{auto\_generated\_hashname}/imsmanifest.xml)

Step 1:
-------

[](#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-scorm
```

Step 2:
-------

[](#step-2)

Run vendor publish for migration and config file

```
php artisan vendor:publish --provider="Peopleaps\Scorm\ScormServiceProvider"
```

Step 3:
-------

[](#step-3)

Run config cache for update cached configuration

```
php artisan config:cache
```

Step 4:
-------

[](#step-4)

Migrate file to database

```
php artisan migrate
```

Step 5 (Optional):
------------------

[](#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):
------------------

[](#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)

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance54

Moderate activity, may be stable

Popularity48

Moderate usage in the ecosystem

Community25

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 61.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~43 days

Recently: every ~263 days

Total

37

Last Release

277d ago

Major Versions

1.0.15 → 2.02021-05-06

2.0.6 → 3.02022-02-11

3.0.9 → 4.0.02022-09-28

3.x-dev → 4.0.12022-09-29

### Community

Maintainers

![](https://www.gravatar.com/avatar/258988219cf511bbd9c2809a6ba1653006dee578e2db26cb813aa99f6a24a319?d=identicon)[devianl2](/maintainers/devianl2)

---

Top Contributors

[![devianl2](https://avatars.githubusercontent.com/u/23150573?v=4)](https://github.com/devianl2 "devianl2 (66 commits)")[![KhaledLela](https://avatars.githubusercontent.com/u/3756884?v=4)](https://github.com/KhaledLela "KhaledLela (38 commits)")[![CThomas87](https://avatars.githubusercontent.com/u/801969?v=4)](https://github.com/CThomas87 "CThomas87 (1 commits)")[![Kreshnik](https://avatars.githubusercontent.com/u/1788349?v=4)](https://github.com/Kreshnik "Kreshnik (1 commits)")[![sandermenke](https://avatars.githubusercontent.com/u/9716820?v=4)](https://github.com/sandermenke "sandermenke (1 commits)")

### Embed Badge

![Health badge](/badges/devianl2-laravel-scorm/health.svg)

```
[![Health](https://phpackages.com/badges/devianl2-laravel-scorm/health.svg)](https://phpackages.com/packages/devianl2-laravel-scorm)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.7k509.9M17.0k](/packages/laravel-framework)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[concrete5/core

Concrete core subtree split

19159.3k48](/packages/concrete5-core)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

7310.3k29](/packages/open-dxp-opendxp)[sylius/core

Sylius e-commerce core. It integrates all components.

10143.1k31](/packages/sylius-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
