molostoff / yii2-debug
Yii1 的调试工具栏
Requires
- php: >=5.1.0
- yiisoft/yii: >=1.1.15
This package is not auto-updated.
Last update: 2024-09-29 05:42:04 UTC
README
Yii 1.1 的调试面板(从 Yii 2 移植过来)。
安装
此扩展可在 packagist.org 获取,并通过以下命令使用 composer 安装:
composer require --dev zhuravljov/yii2-debug.
如果您想手动安装此扩展,只需将源代码复制到 /protected/extensions 目录。
要启用应用程序中的工具栏,请将以下行添加到配置文件中:
return array( 'preload' => array( 'debug', ), 'components' => array( 'debug' => array( 'class' => 'vendor.zhuravljov.yii2-debug.Yii2Debug', // composer installation //'class' => 'ext.yii2-debug.Yii2Debug', // manual installation ), 'db' => array( 'enableProfiling' => true, 'enableParamLogging' => true, ), ), );
配置
您可以使用以下选项自定义调试面板的行为
enabled- 启用/禁用调试面板。allowedIPs- 允许访问调试工具栏的 IP 列表。默认array('127.0.0.1', '::1')。accessExpression- 用于访问评估的附加 PHP 表达式。logPath- 存储调试数据文件的目录。可以使用路径别名指定。默认/runtime/debug。historySize- 要保留的调试数据文件的最大数量。如果生成的文件更多,则最旧的文件将被删除。highlightCode- 突出显示代码。突出显示 SQL 查询和 PHP 变量。可以为每个面板单独设置此参数。moduleId- 查看存储的调试日志的模块 ID。默认debug。showConfig- 显示简化的应用程序配置页面。默认false。hiddenConfigOptions- 要隐藏的不安全组件选项列表(例如登录、密码、密钥)。默认隐藏db组件的username和password。internalUrls- 在调试模块中使用漂亮的路由规则。panels- 调试面板列表。
每个附加的面板都可以单独配置,例如
'debug' => array( 'class' => 'ext.yii2-debug.Yii2Debug', 'panels' => array( 'db' => array( // Disable code highlighting. 'highlightCode' => false, // Disable substitution of placeholders with values in SQL queries. 'insertParamValues' => false, ), ), ),
每个面板都有回调选项 filterData。您可以在将输入数据写入调试日志之前定义自定义函数以过滤数据。当您需要隐藏某些秘密或仅从日志中删除数据时很有用。请注意数据结构操作。这可能导致日志解析错误。
示例
'debug' => array( 'class' => 'ext.yii2-debug.Yii2Debug', 'panels' => array( 'db' => array( 'filterData' => function($data){ // Your code here return $data; } ), ), ),
创建自己的面板
要创建自己的调试面板,可以扩展类 Yii2DebugPanel,例如
class MyTestPanel extends Yii2DebugPanel { /** * The name of panel printed in debugger */ public function getName() { return 'Name'; } /** * Return summary html with results of execution in current request. * Data is available through $this->data */ public function getSummary() { return ''; } /** * Return detailed html report with results of execution in current request. * Data is available through $this->data */ public function getDetail() { return ''; } /** * Return data required for storing in logs. */ public function save() { return array(); } }
然后在配置中附加此面板
'panels' => array( 'test' => array( 'class' => 'path.to.panel.MyTestPanel', // ... ), ),
禁用单个面板
要禁用单个面板(无论是核心还是自定义面板),请将面板配置中的 enabled 属性设置为 false。
示例:禁用核心 profiling 面板
'panels' => array( 'profiling' => array( 'enabled' => false, // ... ), ),
变量转储
使用静态方法 Yii2Debug::dump(),您可以转储任何数据并在稍后调试日志中检查它。
杂项
状态码
如果您使用 PHP < 5.4,调试面板不能自行检测重定向。您可以使用以下代码作为解决方案
'panels' => array( 'request' => array( 'filterData' => function($data){ if (empty($data['statusCode'])) { if (isset($data['responseHeaders']['Location'])) { $data['statusCode'] = 302; } else { $data['statusCode'] = 200; } } return $data; }, ), ),
此代码仅在存在 Location 标头时设置 302 状态码。4xx 和 5xx 状态码可以由调试面板自行检测。在 PHP 5.4 及更高版本中,调试面板使用原生的 PHP 函数 http_response_code() 来检测 HTTP 响应码,因此不需要使用此解决方案。