hackerpro536 / kint
Kint - debugging helper for PHP developers. Version edited by Hackerpro536
1.0.0
2025-08-19 09:46 UTC
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2025-08-19 09:56:49 UTC
README
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": { "hackerpro536/kint": "^1.0" }
Or just run composer require hackerpro536/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.- Important: The older shorthand
dd()
is deprecated due to compatibility issues and will eventually be removed. Use the analogousddd()
instead.
- Important: The older shorthand
- When looking at Kint output, 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. - Clicking the tiny arrows on the right of the output open it in a separate window where you can keep it for comparison.
- 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_clean
the 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_WHITESPACE
andKint::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)' );