Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Tsugi PHP Library

Apereo Incubating badge Build Status

This is part of the Tsugi PHP Project and contains the run-time objects and scripts that support PHP Tsugi applications and modules.

Here is some documentation for the APIs that are provided by this library:

In addition to being used as part of the base Tsugi installs, Tsugi standalone application or modules will generally pull this in as a Packagist dependency using Composer.

For samples of how to use this code in a standalone library or an application, please see the following repositories:

  • Sample Tsugi Module - Copy this if you want to start a fresh Tsugi Module from scratch. If you are building a new tool from scratch, you should build it as a "Tsugi Module" following all of the Tsugi style guidance, using the Tsugi browser environment, and making full use of the Tsugi framework. This repository contains a basic "Tsugi Module" you can use as a starting point.

  • Sample Tsugi-Enabled Application - You can also use Tsugi as a library and add it to a few places in an existing application. This repository contains sample code showing how to use Tsugi as a library in an existing application.

Unit Testing

To download PHPUnit (and any other development dependencies):

composer install

To test:


To run one test:

vendor/bin/phpunit --filter {EntryTest}

Pulling in to Tsugi

Edit composer.json and

composer update --prefer-dist tsugi/lib


This is stored in Packagist.

Making PHPDoc

Read this:

Curl this:

curl -O

Run this:

rm -r /tmp/tsugi/
php sami.phar update sami-config-dist.php
mv /tmp/tsugi/sami.js /tmp/tsugi/s.js
sed 's/".html"/"index.html"/' < /tmp/tsugi/s.js > /tmp/tsugi/sami.js
rm /tmp/tsugi/s.js
open /tmp/tsugi/index.html