branchonline / yii2-eventtracker
扩展 Yii2 框架,添加了一些事件和状态跟踪类。
2.2
2019-02-04 12:18 UTC
Requires
- php: >=7.0
- yiisoft/yii2: 2.0.*
Requires (Dev)
- codeception/codeception: 2.2.*
This package is auto-updated.
Last update: 2024-09-16 03:16:17 UTC
README
目前,此包要求您使用与 Postgres 数据库兼容的 yii2!
当您想跟踪事件(在特定时间点发生)和状态(持续一段时间)信息而不修改数据库时,可以使用 eventtracker 包。
通过应用程序组件跟踪事件和状态信息。
eventtracker 允许通过将自定义类挂钩到核心功能来扩展跟踪功能。
安装
添加
"branchonline/yii2-eventtracker": "2.0"
到您的 composer.json
用法
调整提供的迁移,并确保插入您想跟踪的事件类型和状态键。运行迁移。
创建一个扩展 branchonline\eventtracker\EventTypes
的类,并将事件类型指定为类常量。
创建一个扩展 branchonline\eventtracker\StateKeys
的类,并将状态键指定为类常量。
添加
'eventtracker' => [ 'class' => 'branchonline\eventtracker\EventTracker', 'types_config' => '', // Class extending EventTypes 'keys_config' => '', // Class extending StateKeys ]
到您的应用程序配置中。
如果您想在事件处理完毕后添加额外的处理,创建一个实现 PostEventInterface
的类,并将其挂钩到配置中,如下所示
'eventtracker' => [ 'class' => 'branchonline\eventtracker\EventTracker', 'types_config' => '', // Class extending EventTypes 'keys_config' => '', // Class extending StateKeys 'post_event_handler' => '' // Your handler class, implementing the PostEventInterface ]
现在,您可以使用应用程序组件记录事件和状态,并进行可选的后处理!
示例
记录事件或状态更改
// Log that MY_EVENT happened for the current user with the optional data. Yii::$app->eventtracker->logEvent(EventTypes::MY_EVENT, ['optional' => "data"]); // Log that the state of MY_KEY changed to ['x' => 100]. Yii::$app->eventtracker->logState(StateKeys::MY_KEY, ['x' => 100]);
检索事件或状态
// Get the events between 1 jan 2016 and 1 feb 2016 for user 1 and 2 of type MY_EVENT_1 or MY_EVENT_2. Yii::$app->eventtracker->eventsBetween( TrackerTime::fromUnixTimestamp(1451606400), TrackerTime::fromUnixTimestamp(1454284800), [1, 2], [EventTypes::MY_EVENT_1, EventTypes::MY_EVENT_2] ); // Get the state of MY_KEY_1 and MY_KEY_2 at 1 jan 2016. Yii::$app->eventtracker->stateAt( TrackerTime::fromUnixTimestamp(1451606400), [StateKeys::MY_KEY_1, StateKeys::MY_KEY_2] );