Kint - a powerful and modern PHP debugging tool.
Clone or download
Permalink
Failed to load latest commit information.
build IteratorPlugin: Blacklist mysqli_result Nov 14, 2018
resources RichRenderer: Allow dumps to be put into the folder individually Oct 11, 2018
src IteratorPlugin: Blacklist mysqli_result Nov 14, 2018
tests MysqliPlugin Oct 25, 2018
.gitattributes export-ignore phar file for sensitive IDEs Oct 11, 2018
.gitignore Move SASS-related stuff from npm to ruby Mar 10, 2017
.php_cs Composer.json: Cleanup ambiguous polyfill suggests Jul 24, 2018
.prettierrc.yml Change eslint to prettier Feb 25, 2018
.travis.yml MysqliPlugin Oct 25, 2018
CONTRIBUTING.md Update README and CONTRIBUTING May 18, 2018
Gemfile Move SASS-related stuff from npm to ruby Mar 10, 2017
Gemfile.lock Update dependencies Feb 16, 2018
LICENSE Add LICENSE header to all files through php-cs-fixer May 12, 2018
README.md Update README.md Jul 9, 2018
build.php Update php-cs-fixer settings to be more strict May 12, 2018
composer.json Composer.json: Cleanup ambiguous polyfill suggests Jul 24, 2018
composer.lock TextRenderer: Not all objects without names are literals Sep 30, 2018
init.php Update php-cs-fixer settings to be more strict May 12, 2018
init_helpers.php Update php-cs-fixer settings to be more strict May 12, 2018
init_phar.php Update php-cs-fixer settings to be more strict May 12, 2018
package-lock.json Use the new npm ci Mar 21, 2018
package.json JS: Shared dedupe code May 18, 2018
phpunit.xml MysqliPlugin Oct 25, 2018
psalm.xml Add Psalm analysis tool to CI May 18, 2018

README.md

Kint - debugging helper for PHP developers

Screenshot

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. You will eventually wonder how you developed without it.

Installation

One of the main goals of Kint is to be zero setup.

Download the file and simply

<?php

require 'kint.phar';

Or, if you use Composer:

composer require kint-php/kint --dev

Usage

<?php

Kint::dump($GLOBALS, $_SERVER); // pass any number of parameters
d($GLOBALS, $_SERVER); // or simply use d() as a shorthand

Kint::trace(); // Debug backtrace
d(1); // Debug backtrace shorthand

s($GLOBALS); // Basic output mode

~d($GLOBALS); // Text only output mode

Kint::$enabled_mode = false; // Disable kint
d('Get off my lawn!'); // Debugs no longer have any effect

Tips & Tricks

  • Kint is enabled by default, set Kint::$enabled_mode = false; to turn it completely off.
    The best practice is to enable Kint in a development environment only - so even if you accidentally leave a dump in production, no one will know.
  • See the buttons on the right of the output? Click them to open a new tab, show the access path for the value, or show a search box.
  • 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 large objects!
    • !d($var) will expand the output automatically.
    • -d($var) will attempt to ob_clean the previous output and flush after printing.
    • You can combine modifiers too: ~+d($var)
  • Double clicking the + sign will open/close it and all its children.
  • Triple clicking the + sign in will open/close everything on the page.
  • Add heavy classes to the blacklist to improve performance:
    Kint\Parser\BlacklistPlugin::$shallow_blacklist[] = 'Psr\Container\ContainerInterface';
  • To change display theme, use Kint\Renderer\RichRenderer::$theme = 'theme.css';. You can pass the absolute path to a CSS file, or use one of the built in themes:
    • original.css (default)
    • solarized.css
    • solarized-dark.css
    • aante-light.css
  • Kint has keyboard shortcuts! When Kint is visible, press D on the keyboard and you will be able to traverse the tree with arrows, HJKL, and TAB keys - and expand/collapse nodes with SPACE or ENTER.
  • You can write plugins and wrapper functions to customize dump behavior!
  • Read the full documentation for more information

Authors

Jonathan Vollebregt (jnvsor)
Rokas Šleinius (raveren)

License

Licensed under the MIT License