michaelesmith/event-data

摘要:处理事件数据

0.1 2014-08-29 02:45 UTC

This package is auto-updated.

Last update: 2024-09-24 18:58:50 UTC


README

Build Status

README

这是什么?

这是一个库,允许轻松抽象事件数据的收集和存储,可以将其存储在本地或外部服务。

安装

使用 Composer (推荐)

获取 Composer:https://getcomposer.org.cn

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

示例

在生产环境中将事件存储在本地文件中可能不太有用,但在配置期间可能很有用。您还可以配置记录器。

$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']));

默认情况下,它将立即发送事件,但这可以配置。

$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();

在这个示例中,事件在调用 flush 之前不会发送到存储。

您还可以将其置于调试模式,这样事件就会被记录,但永远不会发送到存储。

$edm->setDebug(true);

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

最后,一个有用的示例。在这里,我们将事件数据发送到 KeenIO,并使用 PSR 记录器(如 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