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(11mo ago)91417.6k—5.8%20[1 issues](https://github.com/stephpy/timeline/issues)5MITPHPPHP &gt;=5.6.0

Since Feb 5Pushed 11mo 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 2d 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

51

—

FairBetter than 95% of packages

Maintenance51

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

345d 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

[friendsofphp/php-cs-fixer

A tool to automatically fix PHP code style

13.5k251.2M25.2k](/packages/friendsofphp-php-cs-fixer)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M738](/packages/sylius-sylius)[symfony/rate-limiter

Provides a Token Bucket implementation to rate limit input and output in your application

27054.3M290](/packages/symfony-rate-limiter)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)[akeneo/pim-community-dev

Akeneo PIM, the future of catalog management is open!

1.0k624.1k85](/packages/akeneo-pim-community-dev)[symfony/ldap

Provides a LDAP client for PHP on top of PHP's ldap extension

1408.1M59](/packages/symfony-ldap)

PHPackages © 2026

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