michaelesmith/event-data

Abstracts event data handling

0.1 2014-08-29 02:45 UTC

This package is auto-updated.

Last update: 2024-10-24 19:12:01 UTC


README

Build Status

README

What is it?

This is a library that allows for easy abstraction of event data collection and storage, allowing it to be stored locally or external service..

Installation

Use Composer (recommended)

Get Composer at http://getcomposer.org

php composer.phar require "michaelesmith/event-data" "dev-master"

Examples

This isn't very useful in production to store the events in a local file but might be useful during configuration. You can also configure loggers.

$edm = new \MS\EventData\EventDataManager(new \MS\EventData\Storage\File('/tmp/events.txt'));
$edm->addLogger(new \MS\EventData\Logger\GenericLogger());
$edm->store(new \MS\EventData\Event\Event('collection', ['field1' => 'val1']));

By default it will send the event immediately but this can be configured.

$edm->setDelayed(true);

$edm->store(new \MS\EventData\Event\Event('collection', ['field1' => 'val1']));
...
$edm->store(new \MS\EventData\Event\Event('collection', ['field1' => 'val1']));
...

$edm->flush();

In this example the events are not sent to the storage until flush is called.

You can also put it in debug mode so events are logged but never sent to storage.

$edm->setDebug(true);

$edm->store(new \MS\EventData\Event\Event('collection', ['field1' => 'val1']));

Finally a useful example. Here we send the event data to KeenIO and log with PSR logger like Monolog.

$edm = new \MS\EventData\EventDataManager(new \MS\EventData\Storage\KeenIO($keenClient));
$edm->addLogger(new \MS\EventData\Logger\PSRLogger($monolog, $edm));
$edm->setDebug(DEBUG_MODE);
$edm->setDelayed(true);

...
$edm->store(new \MS\EventData\Event\Event('collection', ['field1' => 'val1']));
...

$edm->flush(); //after the response has been returned to the user