PHPackages                             stephpy/timeline - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. stephpy/timeline

ActivePackage[Utility &amp; Helpers](/categories/utility)

stephpy/timeline
================

Standalone library to create timelines

v2.0.0(9mo ago)91415.4k↓15.4%20[1 issues](https://github.com/stephpy/timeline/issues)5MITPHPPHP &gt;=5.6.0

Since Feb 5Pushed 9mo ago6 watchersCompare

[ Source](https://github.com/stephpy/timeline)[ Packagist](https://packagist.org/packages/stephpy/timeline)[ Docs](https://github.com/stephpy/timeline)[ RSS](/packages/stephpy-timeline/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (9)Dependencies (6)Versions (13)Used By (5)

Spy Timeline Documentation
==========================

[](#spy-timeline-documentation)

[![https://secure.travis-ci.org/stephpy/timeline.png?branch=master](https://camo.githubusercontent.com/c87105d6dbd9eb7135e83fd5765e7fad3656b3ca4c109cfbccc644ac7ff1140a/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f737465706870792f74696d656c696e652e706e673f6272616e63683d6d6173746572)](http://travis-ci.org/stephpy/timeline)Standalone library to make timeline with php.

At this moment, only one driver is **redis**, use Symfony2 and [Bundle](https://github.com/stephpy/timeline-bundle) to have other drivers.

Description
-----------

[](#description)

A timeline is a collection of actions which can be represented by:

- **Subject**
- **Verb**
- **Complements** (directComplement, indirectComplement, etc...)

Example:

SubjectVerbComplementsChuck Norrisownsthe world (directComplement), with Vic Mc Key (indirectComplement)SheldonsaysBazinga (directComplement)There are two types of action lists to retrieve:

### Timeline

[](#timeline)

Stream of actions where the subject is involved + all actions of its **spreads**, see [spread.rst](https://github.com/stephpy/timeline/tree/master/doc/spread.rst)

### SubjectAction

[](#subjectaction)

All actions the subject performed.

### Context

[](#context)

Imagine Chuck Norris has 233 friends and follow 20 companies.

If we have one context, like facebook, his wall will return each action performed by his friends and companies.

You can also use **Contexts** to filter timelines, for example, we can have 3 contexts:

- GLOBAL: actions of his friends and companies
- FRIEND: actions of his friends
- COMPANIES: actions of his companies

You can define as many contexts as you want. If you have only one context, you'll get each action without being able to easily filter them to return only "OWN" actions or have only actions performed by ChuckNorris' friends

That's why we have a "GLOBAL" context, and you can easily add other contexts.

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

[](#installation)

Use [Composer](https://github.com/composer/composer/) to install: `stephpy/timeline`.

In your composer.json you should have:

```
{
    "require": {
        "stephpy/timeline": "~1.0.0",
        "pimple/pimple": "*"
    }
}
```

Pimple is not mandatory but if you use this library without the bundle, it'll be really easier.

### Requirements

[](#requirements)

Timeline uses php **&gt;=5.3.2**.

Documentation
-------------

[](#documentation)

- [Index](https://github.com/stephpy/timeline/tree/master/README.rst)
- [Basic usage](https://github.com/stephpy/timeline/tree/master/doc/basic_usage.rst)
- [Redis driver](https://github.com/stephpy/timeline/tree/master/doc/drivers/redis.rst)
- [Query Builder](https://github.com/stephpy/timeline/tree/master/doc/query_builder.rst)
- [Filters](https://github.com/stephpy/timeline/tree/master/doc/filter.rst)
- [Notification](https://github.com/stephpy/timeline/tree/master/doc/notification.rst)
- [Pagination](https://github.com/stephpy/timeline/tree/master/doc/pagination.rst)
- [Spreads](https://github.com/stephpy/timeline/tree/master/doc/spread.rst)

Unit Tests
----------

[](#unit-tests)

You can run tests with:

```
bin/atoum -d tests/units
```

Thanks
------

[](#thanks)

Thanks to all [timeline contributors](https://github.com/stephpy/timeline/graphs/contributors) and [bundle contributors](https://github.com/stephpy/timeline-bundle/graphs/contributors).

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance55

Moderate activity, may be stable

Popularity49

Moderate usage in the ecosystem

Community29

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 67.4% 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 ~498 days

Recently: every ~905 days

Total

9

Last Release

298d ago

Major Versions

v1.2.0 → v2.0.02025-07-24

PHP version history (2 changes)v1.0.0PHP &gt;=5.3.2

v1.2.0PHP &gt;=5.6.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/47c3006a9e7662031ee9d3fa064238fef88479fd7d60f18dd47f038fbbd7dc5a?d=identicon)[steph\_py](/maintainers/steph_py)

---

Top Contributors

[![stephpy](https://avatars.githubusercontent.com/u/232744?v=4)](https://github.com/stephpy "stephpy (91 commits)")[![cordoval](https://avatars.githubusercontent.com/u/328359?v=4)](https://github.com/cordoval "cordoval (18 commits)")[![Miliooo](https://avatars.githubusercontent.com/u/3365006?v=4)](https://github.com/Miliooo "Miliooo (15 commits)")[![phansys](https://avatars.githubusercontent.com/u/1231441?v=4)](https://github.com/phansys "phansys (4 commits)")[![venimus](https://avatars.githubusercontent.com/u/632282?v=4)](https://github.com/venimus "venimus (2 commits)")[![vkartaviy](https://avatars.githubusercontent.com/u/648039?v=4)](https://github.com/vkartaviy "vkartaviy (1 commits)")[![KeKs0r](https://avatars.githubusercontent.com/u/2970814?v=4)](https://github.com/KeKs0r "KeKs0r (1 commits)")[![Nyholm](https://avatars.githubusercontent.com/u/1275206?v=4)](https://github.com/Nyholm "Nyholm (1 commits)")[![pulse00](https://avatars.githubusercontent.com/u/185278?v=4)](https://github.com/pulse00 "pulse00 (1 commits)")[![benja-M-1](https://avatars.githubusercontent.com/u/212269?v=4)](https://github.com/benja-M-1 "benja-M-1 (1 commits)")

---

Tags

standalonetimeline

### Embed Badge

![Health badge](/badges/stephpy-timeline/health.svg)

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

###  Alternatives

[league/period

Time range API for PHP

7335.4M21](/packages/league-period)[php-soap/ext-soap-engine

An ext-soap engine implementation

443.2M7](/packages/php-soap-ext-soap-engine)[jaocero/activity-timeline

Add timelines to custom pages or infolist entries effortlessly. Plus, it teams up smoothly with Spatie Activitylog for easy tracking.

90154.3k](/packages/jaocero-activity-timeline)[professional-wiki/modern-timeline

Adds a modern timeline visualization as Semantic MediaWiki result format

1820.8k1](/packages/professional-wiki-modern-timeline)[compwright/php-session

Standalone session implementation that does not rely on the PHP session module or the $\_SESSION global, ideal for ReactPHP applications

189.4k](/packages/compwright-php-session)[mediawiki/semantic-bundle

Bundle extension that installs and loads Semantic MediaWiki and associated extensions

204.4k](/packages/mediawiki-semantic-bundle)

PHPackages © 2026

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