stevad / yii-xhprof
Yii扩展,用于使用Facebook XHProf分析应用
Requires
- php: >=5.3.0
- ext-xhprof: *
- yiisoft/yii: >=1.1.15
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-15 22:38:38 UTC
README
这是一个简单的扩展,用于在Yii Framework 1.x中与XHProf一起使用。
可以与yii2-debug扩展一起使用(包含调试面板)。
默认情况下,配置在onBeginRequest
事件开始,在onEndRequest
事件停止。您可以更改此行为并手动启动和停止分析器。
有关许可证信息,请查看LICENSE文件。
在Yii Framework v1.1.16上测试过。
安装
此扩展可在packagist.org上找到,可以通过以下命令通过composer安装:
composer require --dev stevad/yii-xhprof
.
如果您想手动安装此扩展,请将源代码复制到/protected/extensions
目录。
启用分析器的最小配置
return array( 'preload' => array( 'xhprof' ), 'components' => array( 'xhprof' => array( 'class' => 'ext.yii-xhprof.XHProfComponent', // if you install to protected/extensions 'libPath' => '/full/path/to/xhprof_lib', 'htmlReportBaseUrl' => 'http://url.path.to/xhprof_html', ), ), );
如果您想向yii2-debug扩展添加捆绑的调试面板,请按以下方式更新配置:
return array( 'components' => array( 'debug' => array( // ... other debug config options ... 'panels' => array( 'xhprof' => array( 'class' => 'ext.yii-xhprof.XHProfPanel' // if you install to protected/extensions ) ) ), ), );
所需XHProf文件(库文件xhprof_lib
和UIxhprof_html
)可在以下GitHub仓库中找到。
组件配置
扩展为Yii组件提供以下配置选项
enabled
- 启用/禁用分析器组件。reportPathAlias
- 存储之前分析运行JSON文件的目录的路径别名。默认:application.runtime.xhprof
maxReportsCount
- 要存储的分析报告数。默认:25
。manualStart
- 从期望的位置手动启动分析器的标志。默认:false
。manualStop
- 从期望的位置手动停止分析器的标志。默认:false
。forceStop
- 如果启用了manualStop
并且分析器仍在运行,则在onEndRequest
事件上强制停止分析器的标志。默认:true
。triggerGetParam
- 手动触发分析器启动的GET参数名称。默认:无值,分析器在每次请求上运行。showOverlay
- 在页面显示覆盖层,显示报告和当前分析运行调用图链接的标志(如果允许)。如果您正在使用yii2-debug扩展捆绑的面板,则不需要此标志为true
。默认:true
。libPathAlias
- 如果xhprof_lib
放在您的Yii项目中某个地方,则包含xhprof_lib
内容的目录的路径别名。此选项比libPath
具有更高优先级。libPath
- 包含xhprof_lib
内容的目录的直接文件系统路径。htmlReportBaseUrl
- XHProf UI内容的URL路径(xhprof_html
)。默认:/xhprof_html
(假设您在文档根目录中有一个此文件夹)。flagNoBuiltins
- 为分析器启用/禁用XHPROF_FLAGS_NO_BUILTINS标志(XHProf常量)。默认:true
。flagCpu
- 为分析器启用/禁用XHPROF_FLAGS_CPU标志(XHProf常量)。默认:false
。flagMemory
- 为分析器启用/禁用XHPROF_FLAGS_MEMORY标志(XHProf常量)。默认:true
。blacklistedRoutes
- 应该被剖析器忽略的路由列表。允许通配符*
,表示“任何字母数字值以及以下之一:/
、.
、_
、-
。默认:array('debug*')
(忽略对调试扩展页面的请求)。
XHProf 类配置
扩展组件使用自己开发的简单包装器来使用 xhprof_enable
/ xhprof_disable
函数:XHProf 类。此类提供通过 Facebook 的 XHProf 库启动/停止剖析、保存报告和获取报告 URL 的功能。
可用的配置选项(适用于 configure
方法,见下例)
flagNoBuiltins
- 为分析器启用/禁用XHPROF_FLAGS_NO_BUILTINS标志(XHProf常量)。默认:true
。flagCpu
- 为分析器启用/禁用XHPROF_FLAGS_CPU标志(XHProf常量)。默认:false
。flagMemory
- 为分析器启用/禁用XHPROF_FLAGS_MEMORY标志(XHProf常量)。默认:true
。libPath
- 包含xhprof_lib
内容的目录的直接文件系统路径。htmlUrlPath
- XHProf UI 内容目录的 URL 路径(xhprof_html
)。runId
- 当前剖析运行标识符的预定义值。runNamespace
- 当前剖析运行的命名空间预定义值。
所有选项都可以通过设置器更改(例如 setFlagCpu(<value>)
)。有关更多详细信息,请参阅类的源代码。
手动剖析
如果您启用手动启动(manualStart
选项)或停止(manualStop
选项),您可以在代码的任何位置放置启动/停止剖析器的代码,并能够查看报告和调用图结果。
要手动启动,您需要编写以下类型的代码
// create and configure instance of XHProf class XHProf::getInstance()->configure(array( 'flagNoBuiltins' => true, 'flagCpu' => false, 'flagMemory' => true, 'runNamespace' => 'my-cool-namespace', 'libPath' => '/var/www/html/xhprof/xhprof_lib', 'htmlUrlPath' => 'http://test.local/xhprof/xhprof_html' )); // start profiler XHProf::getInstance()->run();
要手动停止,您需要编写以下代码
// stop profiler XHProf::getInstance()->stop();
注意:如果您使用 XHProf
类(带有或没有此扩展),则所有剖析结果都可以在 XHProf UI 页面上找到(默认情况下由 xhprof 开发者提供)。
作者
版权所有(c)2015 由 Stevad。