stephpy / timeline
Standalone library to create timelines
Installs: 408 538
Dependents: 4
Suggesters: 0
Security: 0
Stars: 89
Watchers: 7
Forks: 20
Open Issues: 1
Type:package
Requires
- php: >=5.6.0
- doctrine/common: ~2.2
- symfony/options-resolver: *
Requires (Dev)
- atoum/atoum: dev-master
- knplabs/knp-components: 1.*
- pimple/pimple: *
- symfony/event-dispatcher: 2.*
Suggests
- ext-redis: Redis C extension for PHP
- knplabs/knp-components: Knp Paginator
- pimple/pimple: Use ServiceLocator
- predis/predis: Redis PHP client library
This package is auto-updated.
Last update: 2024-01-20 17:23:28 UTC
README
Standalone library to make timeline with php.
At this moment, only one driver is redis, use Symfony2 and Bundle to have other drivers.
Description
A timeline is a collection of actions which can be represented by:
- Subject
- Verb
- Complements (directComplement, indirectComplement, etc...)
Example:
Subject | Verb | Complements |
---|---|---|
Chuck Norris | owns | the world (directComplement), with Vic Mc Key (indirectComplement) |
Sheldon | says | Bazinga (directComplement) |
There are two types of action lists to retrieve:
Timeline
Stream of actions where the subject is involved + all actions of its spreads, see spread.rst
SubjectAction
All actions the subject performed.
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
Use 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
Timeline uses php >=5.3.2.
Documentation
Unit Tests
You can run tests with:
bin/atoum -d tests/units
Thanks
Thanks to all timeline contributors and bundle contributors.