PHPackages                             asifm42/scorm-cloud-php - 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. [API Development](/categories/api)
4. /
5. asifm42/scorm-cloud-php

ActiveLibrary[API Development](/categories/api)

asifm42/scorm-cloud-php
=======================

This package simplifies connecting to the Rustici Software's SCORM Cloud API (v1).

v1.0.1(8y ago)09.6k3PHPPHP &gt;=7.0.0

Since Jun 12Pushed 8y ago1 watchersCompare

[ Source](https://github.com/asifm42/SCORMCloud_PHPLibrary)[ Packagist](https://packagist.org/packages/asifm42/scorm-cloud-php)[ RSS](/packages/asifm42-scorm-cloud-php/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (2)DependenciesVersions (5)Used By (3)

SCORM Cloud PHP API Bindings
============================

[](#scorm-cloud-php-api-bindings)

**This fork provides support for psr-4 autoloading.**

This library provides implementations for the majority, but not all, of the [SCORM Cloud API](https://cloud.scorm.com/docs/quick_start.html). It is provided under the BSD 3-clause License (see [LICENSE](LICENSE.md)).

You can sign up for a SCORM Cloud account at .

See our [API quick start](https://cloud.scorm.com/docs/quick_start.html) guide for more information.

Requirements
------------

[](#requirements)

Requires PHP 5 or greater.

Installation
------------

[](#installation)

This library is available [via Composer](https://packagist.org/packages/asifm42/scorm-cloud-php).

Command-line:

```
composer require asifm42/scorm-cloud-php

```

Composer.json:

```
{
    "require": {
        "asifm42/scorm-cloud-php": "dev-master"
    }
}

```

### Configuration

[](#configuration)

The `ScormEngineService` class provides simple access to the API bindings:

```
$scormCloud = new AsifM42\ScormCloud\ScormEngineService(
    "https://cloud.scorm.com/EngineWebServices",
    "your app id",
    "your secret key",
    "your origin string");
```

where *your app id* is the app ID in question, *your secret key* is a secret key for that app ID, and *your origin string* is a company/app description. (The origin string is used for debugging on the SCORM Cloud developers' side.) See [API quick start](https://cloud.scorm.com/docs/quick_start.html) for information on app ID / secret keys.

Example API Calls
-----------------

[](#example-api-calls)

Once installed and configured, it's time to make API calls. As explained in the [quick start guide](https://cloud.scorm.com/docs/quick_start.html), the library implements the scaffolding used to interact with the [actual web API](https://cloud.scorm.com/docs/api_reference/index.html).

The [samples](samples/) directory contains sample code for several API calls. It's not required for the library to function.

### Registration Exists

[](#registration-exists)

Corresponds to [rustici.registration.exists](https://cloud.scorm.com/docs/api_reference/registration.html#exists).

```
$exists = $scormCloud->getRegistrationService()->Exists("reg id");
```

### Create Registration

[](#create-registration)

Corresponds to [rustici.registration.createRegistration](https://cloud.scorm.com/docs/api_reference/registration.html#createRegistration).

```
$scormCloud->getRegistrationService()->CreateRegistration(
    "registration id",
    "course id",
    "learner id",
    "learner first name",
    "learner last name");
```

As explained in the [LMS Integration Guide](https://cloud.scorm.com/docs/lms_integration.html#ids-are-yours), the registration, course, and learner IDs are provided by your system. The course ID needs to be an ID for a course that's already been imported. See the LMS integration guide for more information about integrating a typical LMS with SCORM Cloud.

### Building Launch Link

[](#building-launch-link)

As explained in [rustici.registration.launch](https://cloud.scorm.com/docs/api_reference/registration.html#launch), the launch API call is different from nearly every other API call in that it's intended for integrating systems to *redirect* learners to that API call URL instead of calling it server-side.

The client library facilitates this by providing a `GetLaunchUrl` method:

```
$launchUrl = $scormCloud->getRegistrationService()->GetLaunchUrl(
    "registration id",
    "redirect on exit url");
```

where *registration id* is the registration to launch and *redirect on exit url*is the URL to which the learner should be redirected if they exit the course. (Note: as discussed in the [LMS Integration Guide](https://cloud.scorm.com/docs/lms_integration.html#ids-are-yours), don't rely on learners hitting the redirect on exit URL.)

In a typical PHP web-app, you might redirect to this:

```
header('Location: ' . $launchUrl);
die();
```

The library provides other (default null) parameters for GetLaunchUrl that might be useful.

Implementing Other API Calls
----------------------------

[](#implementing-other-api-calls)

Although this library implements most of the SCORM Cloud API, it doesn't implement all of it. In cases where the library is insufficient, you can use the `ServiceRequest` class to directly call API methods described in the [API reference](https://cloud.scorm.com/docs/api_reference/index.html):

```
$request = $scormCloud->CreateNewRequest();

$request->setMethodParams(array(
    'regid' => 'your reg id'
));

$response = $request->CallService("rustici.registration.exists");
$xml = simplexml_load_string($response);

$exists = ($xml->result == 'true');
```

This snippet of code manually builds a `ServiceRequest` with one parameter and then uses `CallService` to invoke the request for a particular API method.

As it happens, this is (close to) the implementation of the RegistrationExists method above.

If you find methods missing and would like to implement them, we would be eternally grateful for any pull requests.

Support
-------

[](#support)

Need to get in touch with us? Contact us at . Ask us anything.

Don't hesitate to submit technical questions. Our support staff are excellent, and even if they can't answer a question or resolve a problem, tickets get escalated quickly to real, live developers.

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor3

3 contributors hold 50%+ of commits

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 ~10 days

Total

2

Last Release

3088d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/19e94f33fff5211ffb821fc69c4a727f7a996ff5fd7048886ed2c834b98d68ea?d=identicon)[asifm42](/maintainers/asifm42)

---

Top Contributors

[![tseabrooks](https://avatars.githubusercontent.com/u/1126195?v=4)](https://github.com/tseabrooks "tseabrooks (19 commits)")[![tedwards](https://avatars.githubusercontent.com/u/90857?v=4)](https://github.com/tedwards "tedwards (11 commits)")[![asifm42](https://avatars.githubusercontent.com/u/750384?v=4)](https://github.com/asifm42 "asifm42 (9 commits)")[![bscSCORM](https://avatars.githubusercontent.com/u/732452?v=4)](https://github.com/bscSCORM "bscSCORM (5 commits)")[![brianrogers](https://avatars.githubusercontent.com/u/624184?v=4)](https://github.com/brianrogers "brianrogers (5 commits)")[![davidells](https://avatars.githubusercontent.com/u/732474?v=4)](https://github.com/davidells "davidells (5 commits)")[![twiglet](https://avatars.githubusercontent.com/u/248636?v=4)](https://github.com/twiglet "twiglet (2 commits)")[![danmarsden](https://avatars.githubusercontent.com/u/362798?v=4)](https://github.com/danmarsden "danmarsden (2 commits)")[![samthill](https://avatars.githubusercontent.com/u/2703259?v=4)](https://github.com/samthill "samthill (1 commits)")[![rwiggins](https://avatars.githubusercontent.com/u/603419?v=4)](https://github.com/rwiggins "rwiggins (1 commits)")[![nvrks](https://avatars.githubusercontent.com/u/1724461?v=4)](https://github.com/nvrks "nvrks (1 commits)")

### Embed Badge

![Health badge](/badges/asifm42-scorm-cloud-php/health.svg)

```
[![Health](https://phpackages.com/badges/asifm42-scorm-cloud-php/health.svg)](https://phpackages.com/packages/asifm42-scorm-cloud-php)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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