如何创建一个定制的数据收集器
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.1,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
如何创建一个定制的数据收集器
的Symob娱乐下载fony2分析器代表数据采集数据收集器。ob娱乐下载Symfony2其中几个捆绑在一起,但你可以很容易地创建自己的。
创建一个定制的数据收集器
创建一个定制的数据收集器一样简单的实现DataCollectorInterface:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
接口DataCollectorInterface{/ * * *收集数据的请求和响应。* *@param请求请求请求实例*美元@param响应响应响应实例*美元@param美元\异常异常异常实例* /函数收集(请求美元请求、响应美元响应,\例外美元异常= null);/ * * *返回收集器的名称。* *@return字符串收集器的名字* /函数getName();}
的getName ()
方法必须返回一个唯一的名称。这是用于访问信息(见后如何使用分析器功能测试例如)。
的收集()
方法负责将它想给访问的数据存储在本地属性。
谨慎
分析器实例序列化数据收集器,您不应该存储对象不能被序列化(比如PDO对象),或者你需要提供你自己的serialize ()
方法。
大多数时候,它是方便的扩展DataCollector并填充$ this - >数据
序列化的属性(它负责$ this - >数据
属性):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
类MemoryDataCollector扩展DataCollector{公共函数收集(请求美元请求、响应美元响应,\例外美元异常= null){美元这- >data =数组(“记忆”= > memory_get_peak_usage (真正的),);}公共函数getMemory(){返回美元这- >数据(“记忆”];}公共函数getName(){返回“记忆”;}}
启用自定义数据收集器
使一个数据收集器,它添加作为常规服务在你的配置中,并标记data_collector
:
- YAML
- XML
- PHP
1 2 3 4 5
服务:data_collector.your_collector_name:类:完全限定\ \类\ \收集器的名字标签:- - - - - -{名称:data_collector}
1 2 3
<服务id=“data_collector.your_collector_name”类=“完全合格\ \收集器\类\名称”><标签的名字=“data_collector”/ >< /服务>
1 2 3 4
美元容器- >注册(“data_collector.your_collector_name”,的完全限定\ \收集器\类\名称”)- >addTag (“data_collector”);
添加网络分析器模板
当你想显示你的数据收集器收集的数据在web调试工具栏或网络分析器,创建一个树枝模板后这骨架:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
{%扩展“WebProfilerBundle:分析器:layout.html。嫩枝' %}{%块工具栏%}{# web调试工具栏内容#}{%endblock%}{%块头%}{#如果web分析工具面板需要一些特定的JS或CSS文件#}{%endblock%}{%块菜单%}{#菜单内容#}{%endblock%}{%块面板%}{#面板内容#}{%endblock%}
每一块是可选的。的工具栏
块用于web调试工具栏和菜单
和面板
用于将面板添加到web分析器。
所有的块都有访问收集器
对象。
提示
内置模板使用base64编码的图像工具栏(< img src = "数据:图像/ png; base64,……”
)。你可以很容易地计算图像的base64值与这个小脚本:回声base64_encode (file_get_contents ($ _SERVER [argv的][1]));
。
要启用的模板,添加一个模板
属性的data_collector
标签在您的配置。例如,假设你的模板是在一些AcmeDebugBundle
:
- YAML
- XML
- PHP
1 2 3 4 5
服务:data_collector.your_collector_name:类:Acme \类\ \ DebugBundle \收集器的名字标签:- - - - - -{名称:data_collector,模板:“AcmeDebugBundle:收集器:templatename”,id:“your_collector_name”}
1 2 3
<服务id=“data_collector.your_collector_name”类=“Acme \类\ \ DebugBundle \收集器的名字”><标签的名字=“data_collector”模板=“AcmeDebugBundle:收集器:templatename”id=“your_collector_name”/ >< /服务>
1 2 3 4 5 6 7
美元容器- >注册(“data_collector.your_collector_name”,“Acme \ DebugBundle \收集器\类\名称”)- >addTag (“data_collector”,数组(“模板”= >“AcmeDebugBundle:收集器:templatename”,“id”= >“your_collector_name”));