PHPackages                             umich-its-tl/umich-caliper - 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. umich-its-tl/umich-caliper

ActiveLibrary

umich-its-tl/umich-caliper
==========================

Caliper PHP with additions for UMich needs.

1.1.0(7y ago)041[8 issues](https://github.com/tl-its-umich-edu/umich-caliper-php/issues)proprietaryPHPPHP &gt;=5.4.0

Since Feb 5Pushed 2y ago5 watchersCompare

[ Source](https://github.com/tl-its-umich-edu/umich-caliper-php)[ Packagist](https://packagist.org/packages/umich-its-tl/umich-caliper)[ Docs](https://www.imsglobal.org/caliper)[ RSS](/packages/umich-its-tl-umich-caliper/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

IMS Global Learning Consortium, Inc.
====================================

[](#ims-global-learning-consortium-inc)

caliper-php
===========

[](#caliper-php)

The [Caliper Analytics® Specification](https://www.imsglobal.org/caliper/v1p1/caliper-spec-v1p1)provides a structured approach to describing, collecting and exchanging learning activity data at scale. Caliper also defines an application programming interface (the Sensor API™) for marshalling and transmitting event data from instrumented applications to target endpoints for storage, analysis and use.

*caliper-php* is a reference implementation of the Sensor API™ written in PHP.

Branches
--------

[](#branches)

- **master**: stable, deployable branch that stores the official release history.
- **develop**: unstable development branch. Current work that targets a future release is merged to this branch.

Tags
----

[](#tags)

*caliper-php* releases are tagged and versioned MAJOR.MINOR.PATCH\[-label\] (e.g., 1.1.1). Pre-release tags are identified with an extensions label (e.g., "1.2.0-RC01"). The tags are stored in this repository.

Contributing
------------

[](#contributing)

We welcome the posting of issues by non IMS Global Learning Consortium members (e.g., feature requests, bug reports, questions, etc.) but we *do not* accept contributions in the form of pull requests from non-members. See [CONTRIBUTING.md](./CONTRIBUTING.md) for more information.

Getting Started
---------------

[](#getting-started)

### Pre-requisites for development

[](#pre-requisites-for-development)

- PHP 5.4 required (PHP 5.6 recommended)
- Ensure you have php5 and php5-json installed: `sudo apt-get install php5 php5-json`
- Install Composer (for dependency management): `curl -sS https://getcomposer.org/installer | php`
- Install dependencies: `php composer.phar install`
- Run tests using the Makefile

### Installing the Library

[](#installing-the-library)

#### Using Composer

[](#using-composer)

##### Update `composer.json` method 1: Let Composer do it

[](#update-composerjson-method-1-let-composer-do-it)

In a command-line interface, use the following command to create `composer.json` (if your project doesn't have one already) or update it (if you do have one):

```
composer require imsglobal/caliper

```

##### Update `composer.json` method 2: Do it manually

[](#update-composerjson-method-2-do-it-manually)

Add the following entry to the require element of the `composer.json` file for your web application:

```
  "require" : {
    "imsglobal/caliper": "*"
  },

```

##### Continuing the installation with Composer

[](#continuing-the-installation-with-composer)

Once `composer.json` has been updated using one of the two methods described above, the packages need to be installed. (If you used the first method, Composer may have already done this step for you. Doing this step again will not cause any problems.)

In a command-line interface, change directory to the root of your web application and run the following command:

```
composer install

```

Then, add the following to your PHP program:

```
require_once 'vendor/autoload.php';

```

#### Manual installation

[](#manual-installation)

To install the library, clone the repository from GitHub into your desired application directory.

```
git clone https://github.com/IMSGlobal/caliper-php.git

```

Then, add the following to your PHP program:

```
require_once '/path/to/caliper-php/autoload.php';

```

### Using the Library

[](#using-the-library)

Now you're ready to initialize Caliper and send an event as follows:

```
use IMSGlobal\Caliper\Client;
use IMSGlobal\Caliper\Options;
use IMSGlobal\Caliper\Sensor;

$sensor = new Sensor('id');

$options = (new Options())
    ->setApiKey('org.imsglobal.caliper.php.apikey')
    ->setDebug(true)
    ->setHost('http://example.org/dataStoreURI');

$sensor->registerClient('http', new Client('clientId', $options));

// TODO: Define $event to be sent
try {
    $sensor->send($sensor, $event);
} catch (\RuntimeException $sendException) {
    echo 'Error sending event: ' . $sendException->getMessage() . PHP_EOL;
}

```

You only need to create a single instance of a Sensor object which can be then used for sending all messages.

License
-------

[](#license)

This project is licensed under the terms of the GNU Lesser General Public License (LGPL), version 3. See the [LICENSE](./LICENSE) file for details. For additional information on licensing options for IMS members, please see the [NOTICE](./NOTICE.md) file.

©2018 IMS Global Learning Consortium, Inc. All Rights Reserved. Trademark Information -

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

2653d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/50f8d9b79263fba04301a121a99e52686983b2293a1778aaf92acc3ff5aae4f0?d=identicon)[lsloan](/maintainers/lsloan)

---

Top Contributors

[![lsloan](https://avatars.githubusercontent.com/u/20786?v=4)](https://github.com/lsloan "lsloan (2 commits)")

---

Tags

caliper

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/umich-its-tl-umich-caliper/health.svg)

```
[![Health](https://phpackages.com/badges/umich-its-tl-umich-caliper/health.svg)](https://phpackages.com/packages/umich-its-tl-umich-caliper)
```

PHPackages © 2026

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