PHPackages                             celtic/lti - 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. celtic/lti

ActiveLibrary[API Development](/categories/api)

celtic/lti
==========

PHP class library for building LTI integrations

v5.3.2(2mo ago)57279.3k—0.3%40[1 issues](https://github.com/celtic-project/LTI-PHP/issues)6LGPL-3.0-or-laterPHPPHP &gt;=8.1CI failing

Since Mar 13Pushed 2mo ago11 watchersCompare

[ Source](https://github.com/celtic-project/LTI-PHP)[ Packagist](https://packagist.org/packages/celtic/lti)[ Docs](https://github.com/celtic-project/LTI-PHP)[ RSS](/packages/celtic-lti/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (56)Used By (6)

This set of PHP classes encapsulates the code required by an LTI compliant tool provider to communicate with an LTI tool consumer. It includes support for LTI 1.1 and the unofficial extensions to Basic LTI, as well as the registration process and services of LTI 1.2/2.0, and the new security model introduced by LTI 1.3. The Names and Role Provisioning service and the Assignment and Grade services (Line Item, Result and Score) are also supported using either of the LTI security models.

These classes are designed as an update to the [LTI Tool Provider class library](http://www.spvsoftwareproducts.com/php/lti_tool_provider/) and a replacement for the library at  which is no longer supported.

Whilst supporting LTI is relatively simple, the benefits to using a class library like this one are:

- the abstraction layer provided by the classes keeps the LTI communications separate from the application code;
- the code can be re-used between multiple tool providers;
- LTI data is transformed into useful objects and missing data automatically replaced with sensible defaults;
- the outcomes service function uses LTI 1.1 or the unofficial outcomes extension according to whichever is supported by the tool consumer;
- the unofficial extensions for memberships and setting services are supported;
- additional functionality is included to:
    - enable/disable a consumer key;
    - set start and end times for enabling access for each consumer key;
    - set up arrangements such that users from different resource links can all collaborate together within a single tool provider link;
- LTI applications can take advantage of LTI updates with minimal impact on their code.

The GitHub repository provides access to the [source files](https://github.com/celtic-project/LTI-PHP) and [documentation](https://github.com/celtic-project/LTI-PHP/wiki). The example [Rating LTI application](https://github.com/celtic-project/Rating-PHP) is based on this library to further illustrate how it can be used.

###  Health Score

65

—

FairBetter than 99% of packages

Maintenance84

Actively maintained with recent releases

Popularity51

Moderate usage in the ecosystem

Community28

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 97.9% 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 ~49 days

Recently: every ~118 days

Total

53

Last Release

76d ago

Major Versions

v3.3.0 → v4.0.02020-06-26

v3.3.1 → v4.0.22020-07-20

v4.10.1 → v5.0.0-rc12023-04-03

v4.10.2 → v5.0.0-rc22023-05-31

v4.10.3 → v5.0.02023-07-31

PHP version history (3 changes)v3.1.0PHP &gt;=5.6.0

v5.0.0-rc1PHP &gt;=8.1.0

v5.0.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/8b8db651220704e73e97d36a3b25e8a7b07b1b653e862e2ac3d5eaedd7541fbd?d=identicon)[celtic](/maintainers/celtic)

---

Top Contributors

[![spvickers](https://avatars.githubusercontent.com/u/3266092?v=4)](https://github.com/spvickers "spvickers (379 commits)")[![scollovati](https://avatars.githubusercontent.com/u/20740642?v=4)](https://github.com/scollovati "scollovati (5 commits)")[![Izumi-kun](https://avatars.githubusercontent.com/u/1062584?v=4)](https://github.com/Izumi-kun "Izumi-kun (2 commits)")[![abertranb](https://avatars.githubusercontent.com/u/854229?v=4)](https://github.com/abertranb "abertranb (1 commits)")

---

Tags

phpLTI

### Embed Badge

![Health badge](/badges/celtic-lti/health.svg)

```
[![Health](https://phpackages.com/badges/celtic-lti/health.svg)](https://phpackages.com/packages/celtic-lti)
```

###  Alternatives

[docusign/esign-client

The Docusign PHP library makes integrating Docusign into your apps and websites a super fast and painless process. The library is open sourced on GitHub, look for the docusign-esign-php-client repository. Join the eSign revolution!

2087.4M13](/packages/docusign-esign-client)[packbackbooks/lti-1p3-tool

A library used for building IMS-certified LTI 1.3 tool providers in PHP.

51438.3k2](/packages/packbackbooks-lti-1p3-tool)[get-stream/stream

A PHP client for Stream (https://getstream.io)

1451.3M8](/packages/get-stream-stream)[agence104/livekit-server-sdk

Server-side SDK for LiveKit.

79189.9k1](/packages/agence104-livekit-server-sdk)[hoels/app-store-server-library-php

The PHP server library for the App Store Server API and App Store Server Notifications.

44162.2k](/packages/hoels-app-store-server-library-php)[vemcogroup/laravel-weather

Weather package for Laravel to use different providers to get weather info

5525.0k](/packages/vemcogroup-laravel-weather)

PHPackages © 2026

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