youssef/debug
Composer 安装命令:
composer require youssef/debug
包简介
Kint - debugging helper for PHP developers
README 文档
README
What am I looking at?
At first glance Kint is just a pretty replacement for var_dump(), print_r() and debug_backtrace().
However, it's much, much more than that. Even the excellent xdebug var_dump improvements don't come close - you will eventually wonder how you developed without it.
Just to list some of the most useful features:
- The variable name and file + line where Kint was called from is displayed;
- You can disable all Kint output easily and on the fly - so you can even debug live systems without anyone knowing (even though you know you shouldn't be doing that!:).
- CLI is detected and formatted for automatically (but everything can be overridden on the fly) - if your setup supports it, the output is colored too:
- Debug backtraces are finally fully readable, actually informative and a pleasure to the eye.
- Kint has been in active development since 2010 and is shipped with Drupal 8 by default as part of its devel suite. You can trust it not being abandoned or getting left behind in features.
- Variable content is displayed in the most informative way - and you never, ever miss anything! Kint guarantees you see every piece of physically available information about everything you are dumping*;
- in some cases, the content is truncated where it would otherwise be too large to view anyway - but the user is always made aware of that;
- Some variable content types have an alternative display - for example you will be able see
JSONin its raw form - but also as an associative array:
There are more than ten custom variable type displays inbuilt and more are added periodically.
Installation and Usage
One of the main goals of Kint is to be zero setup.
Download the archive and simply
<?php require '/kint/Kint.class.php';
Or, if you use Composer:
"require": { "raveren/kint": "^1.0" }
Or just run composer require raveren/kint
That's it, you can now use Kint to debug your code:
########## DUMP VARIABLE ########################### Kint::dump($GLOBALS, $_SERVER); // pass any number of parameters // or simply use d() as a shorthand: d($_SERVER); ########## DEBUG BACKTRACE ######################### Kint::trace(); // or via shorthand: d(1); ############# BASIC OUTPUT ######################### # this will show a basic javascript-free display s($GLOBALS); ######### WHITESPACE FORMATTED OUTPUT ############## # this will be garbled if viewed in browser as it is whitespace-formatted only ~d($GLOBALS); // just prepend with the tilde ########## MISCELLANEOUS ########################### # this will disable kint completely Kint::enabled(false); ddd('Get off my lawn!'); // no effect Kint::enabled(true); ddd( 'this line will stop the execution flow because Kint was just re-enabled above!' );
Note, that Kint does have configuration (like themes and IDE integration!), but it's in need of being rewritten, so I'm not documenting it yet.
Tips & Tricks
- Kint is enabled by default, call
Kint::enabled(false);to turn its funcionality completely off. The best practice is to enable Kint in DEVELOPMENT environment only (or for exampleKint::enabled($_SERVER['REMOTE_ADDR'] === '<your IP>');) - so even if you accidentally leave a dump in production, no one will know. sd()andddd()are shorthands fors();die;andd();die;respectively.- Kint has keyboard shortcuts! When Kint is visible, press D on the keyboard and you will be able to traverse the tree with arrows and tab keys - and expand/collapse nodes with space or enter.
- Double clicking the
[+]sign in the output will expand/collapse ALL nodes; triple clicking big blocks of text will select it all. - To catch output from Kint just assign it to a variablebeta
$o = Kint::dump($GLOBALS); // yes, the assignment is automatically detected, and $o // now holds whatever was going to be printed otherwise. // it also supports modifiers (read on) for the variable: ~$o = Kint::dump($GLOBALS); // this output will be in whitespace
- There are a couple of real-time modifiers you can use:
~d($var)this call will output in plain text format.+d($var)will disregard depth level limits and output everything (careful, this can hang your browser on huge objects)!d($var)will show expanded rich output.-d($var)will attempt toob_cleanthe previous output so if you're dumping something inside a HTML page, you will still see Kint output. You can combine modifiers too:~+d($var)
- To force a specific dump output type just pass it to the
Kint::enabled()method. Available options are:Kint::MODE_RICH(default),Kint::MODE_PLAIN,Kint::MODE_WHITESPACEandKint::MODE_CLI:
Kint::enabled(Kint::MODE_WHITESPACE); $kintOutput = Kint::dump($GLOBALS); // now $kintOutput can be written to a text log file and // be perfectly readable from there
- To change display theme, use
Kint::$theme = '<theme name>';where available options are:'original'(default),'solarized','solarized-dark'and'aante-light'. Here's an (outdated) preview:
- Kint also includes a naïve profiler you may find handy. It's for determining relatively which code blocks take longer than others:
Kint::dump( microtime() ); // just pass microtime() sleep( 1 ); Kint::dump( microtime(), 'after sleep(1)' ); sleep( 2 ); ddd( microtime(), 'final call, after sleep(2)' );
- See the tiny arrows on the right of the output? Click them (not in the image though :) to open its parent node in a separate browser window.
Author
Rokas Šleinius (raveren)
License
Licensed under the MIT License
youssef/debug 适用场景与选型建议
youssef/debug 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 831 次下载、GitHub Stars 达 0, 最近一次更新时间为 2016 年 11 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「debug」 「kint」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 youssef/debug 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 youssef/debug 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 youssef/debug 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This bundle lets you use the Kint function in your Twig templates. Kint is a print_r() replacement which produces a structured, collapsible and escaped output
Debug your SimpleBus EventBus and CommandBus
nice output for debug functions for PHP 5.3
Kint - debugging tool for PHP developers
Adds Kint, an in-app PHP debugger for use in Twig and PHP.
Custom Kint Configuration for Pump Projects
统计信息
- 总下载量: 831
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 14
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-11-20