kilbiller / debug_kit
CakePHP Debug Kit 的分支
Requires
- php: >=5.3.0
- composer/installers: ^1.0.0
Requires (Dev)
- cakephp/cakephp-codesniffer: ^1.0.0
- 4.0.1
- 4.0.0
- 3.4.11
- 3.4.1
- 3.4.0
- 3.3.7
- 3.3.6
- 3.3.5
- 3.3.4
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.9
- 3.2.8
- 3.2.7
- 3.2.6
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.10
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-beta2
- 3.0.0-beta
- 2.2.x-dev
- dev-master / 2.2.x-dev
- 2.2.6
- 2.2.5
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- dev-add_namespaces
This package is auto-updated.
Last update: 2024-09-15 21:56:50 UTC
README
DebugKit 为 CakePHP 应用程序提供调试工具栏和增强的调试工具。
要求
主分支有以下要求
- CakePHP 2.2.0 或更高版本。
- PHP 5.3.0 或更高版本。
安装
使用 Composer
从您的项目 composer.json 所在的目录使用 Composer 安装此插件
php composer.phar require cakephp/debug_kit "^2.2.0"
如果您只想将 DebugKit 用于开发环境,请考虑使用 "--dev"。
由于此插件在其自己的 composer.json 中设置了 cakephp-plugin 类型,因此 composer 会将其安装到您的 /Plugin 目录中,而不是常规的 vendors 文件。建议您将 /Plugin/DebugKit 添加到您的 .gitignore 文件中。(为什么?阅读此内容。)
[手动]
- 下载 DebugKit 归档。
- 解压缩下载内容。
- 将生成的文件夹重命名为
DebugKit - 然后将此文件夹复制到
app/Plugin/
[GIT 子模块]
在您的应用程序目录中输入
git submodule add --branch 2.2 git://github.com/cakephp/debug_kit.git Plugin/DebugKit git submodule init git submodule update
[GIT Clone]
在您的插件目录中输入
git clone --single-branch --branch 2.2 git://github.com/cakephp/debug_kit.git DebugKit
启用插件
- 在 2.x 版本中,您需要在您的
app/Config/bootstrap.php文件中启用插件。如果您已经使用了CakePlugin::loadAll();,则以下内容不是必需的。
CakePlugin::load('DebugKit');
- 在您的
app/Controller/AppController.php中包含工具栏组件
class AppController extends Controller { public $components = array('DebugKit.Toolbar'); }
- 在
app/Config/core.php中设置Configure::write('debug', 1); - 如果您想体验 DebugKit SQL 日志的强大功能,请确保从布局中移除 'sql_dump' 元素(通常在
app/View/Layouts/default.ctp中)。
报告问题
如果您遇到 DebugKit 的问题,请打开 GitHub 上的一个问题。
贡献
如果您想为 DebugKit 做贡献,请查看任何计划功能的 路线图。您可以 分支 项目,添加功能,并通过 pull requests 或 issues 提交。
版本
DebugKit 有几个版本,每个版本都与 CakePHP 的不同版本兼容。通过下载标签或检查正确的分支来使用适当的版本。
1.0, 1.1, 1.2与 CakePHP 1.2.x 兼容。这些 DebugKit 版本不适用于 CakePHP 1.3。您还可以使用1.2-branch获取最新更新和错误修复。1.3.0仅与 CakePHP 1.3.x 兼容。它不适用于 CakePHP 1.2。您还可以使用1.3分支获取最新更新和错误修复。2.0.0仅与 CakePHP 2.0.x 兼容。它不适用于之前的 CakePHP 版本。2.2.0与 CakePHP 2.2.0 及更高版本兼容。由于此版本使用了 2.2 版本中可用的新 API,因此它将无法与旧版本的 CakePHP 一起工作。2.2.x与 CakePHP 2.2.0 及更高版本兼容。对于使用 CakePHP 2.4 的用户来说,这是一个必要的升级,因为在该版本中日志记录器的命名约定发生了变化。3.x.x与 CakePHP 3.0.0 及更高版本兼容。这些版本是在master分支中开发的。
文档
工具栏面板
DebugKit 工具栏由几个面板组成,这些面板在安装并加载 DebugKit 之后,通过点击浏览器右上角的 CakePHP 图标来显示。每个面板由一个面板类和一个视图元素组成。通常,一个面板负责收集和显示一种类型的信息,例如日志或请求信息。您可以选择工具栏中的面板或添加您自己的自定义面板。
内置面板
有几个内置面板,它们是:
- 历史记录 允许访问先前的请求信息,在调试带有重定向的操作时非常有用。
- 请求 显示有关当前请求的信息,包括 GET、POST、Cake 参数、当前路由信息以及如果
CookieComponent在您控制器中,则显示 Cookie。 - 会话 显示当前会话中的信息。
- 计时器 显示在请求期间设置的任何计时器(请参阅
DebugKitDebugger了解更多信息)。此外,还会显示组件回调中的内存使用情况以及峰值内存使用。 - SQL 日志 显示每个数据库连接的 SQL 日志。
- 日志 显示对此次请求的日志文件中添加的任何条目。
- 变量 显示在控制器中设置的视图变量。
- 环境 显示与 PHP + CakePHP 相关的环境变量。
配置
工具栏有一些配置设置。设置通过组件声明传递,就像正常的组件配置一样。
public $components = array( 'DebugKit.Toolbar' => array(/* array of settings */) );
配置面板
您可以根据需要自定义工具栏,显示您自己的自定义面板或隐藏任何内置面板。
public $components = array('DebugKit.Toolbar' => array( 'panels' => array('MyCustom', 'timer'=>false) ) );
将显示您的自定义面板和除“计时器”面板之外的所有内置面板。
控制面板
使用面板键,您可以指定要加载哪些面板,以及面板加载的顺序。
public $components = array( 'DebugKit.Toolbar' => array('panels' => array('MyCustom', 'timer' => false)) );
将添加您的自定义面板 MyCustomPanel 到工具栏中,并排除默认的 Timer 面板。除了选择您想要的面板外,您还可以将选项传递到面板的 __construct 中。例如,内置的 History 面板使用 history 键来设置要跟踪的历史请求的数量。
public $components = array( 'DebugKit.Toolbar' => array('history' => 10) );
将加载 History 面板并将其历史级别设置为 10。不将 panels 键传递给面板构造函数。
forceEnable
forceEnable 设置是 DebugKit 1.1 中新增的。它允许您强制工具栏显示,而不管 Configure::read('debug'); 的值如何。当您使用调试套件对应用程序进行性能分析时,这非常有用,因为您可以在生产模式下运行应用程序时启用工具栏。
autoRun
autoRun 是 DebugKit 1.2 中新增的配置设置。它允许您控制是否自动显示工具栏,或者您是否希望使用查询字符串参数来启用它。将此配置键设置为 false 以使用工具栏的查询字符串参数切换。
public $components = array( 'DebugKit.Toolbar' => array('autoRun' => false) );
访问页面时,您可以在 URL 中添加 ?debug=true,工具栏将可见。否则,它将保持隐藏且不执行。
开发您自己的面板
您可以为 DebugKit 创建自定义面板,以帮助您调试应用程序。
面板类
面板类只需放置在Lib路径下的Panel目录中。文件名应与类名匹配,因此类MyCustomPanel应期望文件名为app/Lib/Panel/MyCustomPanel.php。
App::uses('DebugPanel', 'DebugKit.Lib'); /** * My Custom Panel */ class MyCustomPanel extends DebugPanel { ... }
请参阅示例 Test/test_app/Plugin/DebugkitTestPlugin/Lib/Panel/PluginTestPanel.php。
请注意,自定义面板必须继承自DebugPanel类。面板可以定义css和javascript属性来在页面上包含额外的CSS或javascript。这两个属性都应该是数组。
class MyCustomPanel extends DebugPanel { public $javascript = array( '/my_plugin/js/custom_panel.js' ); }
回调函数
面板对象有两个回调函数,允许它们钩入并对当前请求进行反射。
startup(Controller $controller)
每个面板的startup()方法在组件startup()过程中被调用。$controller是当前控制器对象的引用。
beforeRender(Controller $controller)
与startup()类似,beforeRender()在组件beforeRender()过程中被调用。同样,$controller是当前控制器的引用。通常在这个阶段,你可以对控制器进行额外的反射。面板的beforeRender()返回值会自动由工具栏组件传递给视图。因此,在正常使用中,你不需要显式地将变量设置到控制器中。
beforeRender()回调示例
/** * beforeRender callback - grabs request params * * @return array */ public function beforeRender(Controller $controller) { return $controller->params; }
这将返回cake的内部params数组。面板的beforeRender()返回值在面板元素中作为$content可用。
面板元素
每个面板都应有一个视图元素来渲染面板内容。元素名称必须是类名的下划线变形。例如,SessionPanel有一个名为session_panel.ctp的元素,而sqllogPanel有一个名为sqllog_panel.ctp的元素。这些元素应位于你的View/Elements目录的根目录。
自定义标题和元素
面板应通过约定获取其标题和元素名称。但是,如果你需要选择自定义元素名称或标题,有一些属性允许这种配置。
$title- 设置用于工具栏的自定义标题。此标题将用作面板的按钮。$elementName- 设置用于渲染面板的自定义元素名称。
面板作为Cake插件
由Cake插件提供的面板几乎与其他插件完全相同,只有一个小的不同:你必须设置public $plugin为插件目录的名称,这样面板的元素就可以在渲染时定位。
class MyCustomPanel extends DebugPanel { public $plugin = 'MyPlugin'; ... }
要使用插件面板,请使用常见的CakePHP点表示法来指定插件。
public $components = array('DebugKit.Toolbar' => array( 'panels' => array('MyPlugin.MyCustom') ));
上述代码将加载所有默认面板以及来自MyPlugin的自定义面板。
缓存引擎
默认情况下,DebugKit使用文件作为内部缓存的引擎,但如果你想使用另一个缓存引擎,你可以通过在组件配置数组中添加一个缓存键来自定义它。
public $components = array('DebugKit.Toolbar' => array( 'cache' => array('engine' => 'Memcache', 'servers' => array('127.0.0.1:11211')) ) );
你可以使用CakePHP支持的任何缓存引擎,就像在core.php和bootstrap.php文件中通过Cache::config()方法设置的方式一样。
查看AJAX请求的工具栏
在进行AJAX请求时,你将无法看到工具栏的HTML版本。然而,如果你有一个支持FirePHP的浏览器扩展,你可以在浏览器中查看工具栏。
安装正确的扩展后,你应该在每个AJAX请求上看到工具栏数据输出。