本文概述
毫无疑问, PHP开发人员很幸运地拥有PHP中包含的很棒的调试实用程序功能, 如var_dump和debug_backtrace以图形方式(在文本描述中)知道某些变量的内容。默认情况下, 某些语言(例如C, C#和其他语言)不提供此类实用程序。当你调试为什么代码不起作用或从头开始创建某些内容时, 这确实很有用。
但是, 即使使用魔术方法var_dump, 也很难理解和读取变量的某些结构。这就是为什么有一些库决定使像Kint这样的功能更好。 Kint for PHP是一个非常有用的工具, 旨在以绝对最佳的方式以图形方式显示调试数据。换句话说, 它是类固醇上的var_dump()和debug_backtrace()。易于使用, 但功能强大且可自定义。它是开发工具箱中必不可少的补充, 因此, 如果你仍然不了解该库的描述, 则可以使用它来查看变量内部的含义:
该树形视图显示在视图中, 你可以在其中通过简单地单击栏上的任意位置将其展开来查看数据。树视图的一些功能包括:
- 双击+展开所有孩子
- 按d切换键盘导航。
- 按右侧的”⇄”图标, 查看要运行以获取一条数据所需的操作。
- 更改选项卡以查看不同的数据视图。
- 你可以通过单击标题对数据表进行排序。
Kint自动检测, 解压缩和解析XML, base64, 序列化和JSON等常见格式。此外, 它还检测颜色, 文件名, 表格和时间戳等常见模式, 并显示有关它们的额外信息, 从而为开发人员提供访问嵌套在层次结构深处的某些信息所需的确切代码。
安装
你可以在任何使用等于或高于5.1.2版本的PHP项目中轻松使用此库。你可以通过在项目中简单运行以下命令来使用composer安装它:
composer require kint-php/kint
或者, 只需从存储库下载kint.php文件, 然后将其添加到你的PHP文件中, 如下所示:
<?php
require 'kint.php';
通过两种方式中的任何一种安装后, 你将能够使用Kint提供的方法来帮助你进行调试。
用法
该项目易于使用。就像该语言的默认调试方法一样, 你可以使用Kint类的静态方法转储来调试变量, 甚至使用快捷方式:
<?php
// If using composer include the kint namespace
use Kint;
// Debug multiple arguments
Kint::dump($GLOBALS, $_SERVER, "Hello World");
// Or use the d shortcut of Kint
d($GLOBALS, $_SERVER, "Hello World");
// Debug backtrace
Kint::trace();
// Debug backtrace shortcut
d(1);
// Basic output mode
s($GLOBALS);
// Text only output mode
~d($GLOBALS);
// Disable kint
Kint::$enabled_mode = false;
// Debugs no longer have any effect
d('Get off my lawn!');
技巧和窍门
- 默认情况下启用Kint, 设置Kint :: $ enabled_mode = false;完全关闭其功能。最佳做法是仅在开发环境中启用Kint(或例如Kint :: $ enabled_mode =($ _SERVER [‘REMOTE_ADDR’] ==='<你的IP>’);)-即使你不小心留下了一个在生产中转储, 没人会知道。
- Kint有键盘快捷键!当看到Kint时, 按d 在键盘上, 你将能够使用箭头遍历树, HĴķ升和标签 键-并使用以下命令扩展/折叠节点空间or输入.
- 点击+ 标志, 否则栏将打开/关闭它。
- 双击+ 标志将打开/关闭它及其所有子代。
- 三按+ 登录将打开/关闭页面上的所有内容。
- 看到输出右侧的小箭头了吗?单击它们以在单独的选项卡中打开节点, 或显示该值的访问路径。
- 你可以使用几个实时修改器:
- 〜d($ var)此调用将以纯文本格式输出。
- + d($ var)将忽略深度级别限制并输出所有内容。 (小心, 这可能会使浏览器挂在大物体上!)
- !d($ var)将自动扩展输出。
- -d($ var)将尝试ob_clean先前的输出。
- 你也可以组合修饰符:〜+ d($ var)
- 要更改显示主题, 请使用Kint_Renderer_Rich :: $ theme ='<主题名称>’;可用选项包括:” original.css”(默认), ” solarized.css”, ” solarized-dark.css”和” aante-light.css”。你还可以将绝对路径传递到CSS文件, 以使用该路径:
- 在Kint 2中删除了dd(), sd()和ddd(), 但你可以使用帮助程序别名将它们自己设置
- 阅读完整的文档以获取更多信息。
如何贡献
Kint的源代码托管在Github上, 你可以在MIT许可下使用项目报告问题, 创建请求请求。
评论前必须登录!
注册