michaelesmith / event-data-bundle
允许轻松使用 EventData 库
dev-master / 0.1.x-dev
2014-09-02 02:31 UTC
Requires
- php: >=5.4
- michaelesmith/event-data: dev-master
This package is auto-updated.
Last update: 2024-09-19 10:29:15 UTC
README
这是什么?
这是一个库,通过向Web性能分析器添加面板来实现 EventData 库(https://github.com/michaelesmith/EventData)的集成。
安装
使用Composer(推荐)
获取Composer:https://getcomposer.org.cn
php composer.phar require "michaelesmith/event-data-bundle" "dev-master"
示例
示例配置
# app/config/config.yml events_storage: class: MS\EventData\Storage\KeenIO arguments: [ @keen_io ] events_logger: class: MS\EventData\Logger\PSRLogger arguments: [@logger, @events] events_logger_generic: class: MS\EventData\Logger\GenericLogger events_data_collector: class: MS\Bundle\EventDataBundle\DataCollector\EventDataCollector arguments: [@events, @events_logger_generic] tags: - { name: data_collector, template: "MSEventDataBundle:Collector:events", id: "event_data" } events_data_listener: class: MS\Bundle\EventDataBundle\EventListener\EventDataListener arguments: [@events] tags: - name: kernel.event_listener # event: kernel.finish_request event: kernel.terminate method: flush priority: 0 events: class: MS\EventData\EventDataManager arguments: [@events_storage] calls: - [addLogger, [@events_logger]] - [addLogger, [@events_logger_generic]] - [setDebug, [%kernel.debug%]] - [setDelayed, ["@=not parameter('kernel.debug')"]]
要使用 keen 存储,您需要要求 keenIO 包:"keen-io/keen-io-bundle": "~1.0"。这还配置了一个 PSRLogger,使用默认的记录实例。通用的记录器由性能分析器面板使用。数据收集器是驱动性能分析器面板的力量。事件监听器允许在将响应发送给用户之后刷新事件,以防止延迟。为了使数据收集器具有响应,您需要使用 kernel.finish_request,它在响应发送之前被调用,在生产中应使用 kernel.terminate,它在响应发送后被调用。
在操作中使用它,您可以简单地这样做
$this->container->get('events')->store(new Event('page_view', array('homepage')));
传递给它的事件类可以是实现了 \MS\EventData\Event\EventInterface 或扩展 \MS\EventData\Event\Event 的任何东西。我发现使用自己的事件类很有帮助,这样它可以自动添加数据,如当前时间、用户IP或已登录用户名。