kint

Kint - a powerful and modern PHP debugging tool.

MIT License

Downloads
13.5M
Stars
2.7K
Committers
27
kint - 2.1.2

Published by jnvsor over 7 years ago

Most of this release is bugfixes, but there are a few notable changes.

  • Disabled the binary, DOMNode, DOMIterator, and Serialize plugins. They're still there but you have to opt-in now. For reasons behind these choices see #244
  • Max depth has been lowered to 6. Because Kint currently supplies much more information than v1 did it's also a bit slower. This is compounded by the constantly increasing interdependent hierarchies in use in modern PHP systems. Because the access paths are a thing in Kint 2 it's very easy to run a second dump to get deeper in, so this will barely make a dent for usability, but lowering the depth limit one level typically cuts runtime in 3!
  • There is now a parserPlugins method on the Kint_Renderer which can alter or supply a list of plugins for the parser to be initialized with. A whitelist on the text renderer makes use of this by disabling most of the plugins so text, cli, and plain dumps are fast.
  • Dropped reference detection support below 5.2.1. This had been causing infinite loops since alpha2 and no-one noticed. /me clumsily foreshadows impending PHP version requirement bump
kint - 2.1.1

Published by jnvsor over 7 years ago

  • Bugfixed accidental write to input variables in Closure plugin

    This is a serious bug and the reason for the emergency patch release.
    This bug may affect operation of caller code in a default Kint 2.0+ installation.
    Please upgrade at your earliest convenience.

  • Removed value representation from unknown types

  • Stricter parsing and testing for "Impossible index" variables

  • Updated nodejs to use a lockfile

kint - 2.1

Published by jnvsor over 7 years ago

  • Bugfixes
    • Missing "Inherited from" in docstrings
    • Renderers: Get return status from settings, not directly from modifiers
    • Sourceparser would explode on 5.1 and 5.2 (Since no-one brought that up it means we have pleasantly few people using those old versions)
    • Fixed a bug in certain browsers where tripleclick select all would add 4 spaces of indentation for some reason.
    • Fix bug in complex string parsing ("${var}" would add an extra indentation level, causing the var name/access path to go on until the end of the containing block)
    • Make the shorthand (d(1);) show a backtrace to the same depth as Kint::trace()
    • PHPUnit failed to check for certain error levels in certain circumstances
    • Fixed a bug in the way the trace plugin validated traces. (Let's just say it was completely wrong)
  • Added unit tests
    • Kint class
    • Kint_Parser_Trace plugin (Also used independently by helper for minitrace etc)
    • Kint_Object_Representation
    • Kint_Object
    • Kint_Object_Blob
    • And tweaks to parser, sourceparser tests
  • Representation names now contain digits when automatically transferred from labels
  • Added .gitattributes to clean up distributed archives and stop compiled files from messing up the diff view.
  • Character encodings now work slightly different
    • ASCII and UTF-8 are the only ones enabled by default now (Should be a bit of a performance boost)
    • Some investigation has lead me to believe that mb_detect_encoding only practically supports
      • ASCII
      • UTF-8
      • SJIS
      • EUC-JP
    • Windows-1252 is using some custom validation if mb_detect_encoding fails, since just about any byte is valid in 1252
    • Accordingly, the Binary plugin will always trigger if the string is not UTF-8 or ASCII
  • Blacklist '/' and '.' for FsPath plugin (Since those strings are likely to show up often)
  • Moved string escaping into renderers
    • Deprecates Kint_Object_Blob::escape and Kint_Renderer_Rich_Plugin::renderLockedHeader, to be removed in next major version.
  • Added Exception plugin (Shows message in bar)
  • Added DateTime plugin (Shows value in bar)
  • Added links to PHP documentation for internal functions and methods
  • Massive performance improvement to the sourceparser. The base call time of Kint was a bit slow on very large files
  • Source code is gzcompressed in the built files, then gzuncompressed and evalled at runtime. This brings the file size down to under 40kb
kint - 2.0

Published by jnvsor over 7 years ago

Hooray! After more than 18 months and more than 230 commits, Kint 2.0 is here!

This is a ground-up rewrite of most of the Kint functionality. There are a lot of new features, so I'll summarize the big differences from 1.1:

  • Access paths - Automatically see the code you need to get somewhere deep in the hierarchy
  • Frontend usability tweaks - Clicking on the [+] once will only unfold one level. Keyboard and mouse control can be used at the same time
  • Single file distribution: All of Kint in a single file. Download and include and you're done
  • Much better plugability: You can alter pretty much all of Kint's behaviour without touching the Kint source code
  • Blacklist plugin: Skip overweight classes to make Kint dumps faster
  • Lots of bugfixes
  • Cleaner code
  • Unit tests
  • Can be used as a library
  • Easier build process
kint - 2.0 release candidate 1

Published by jnvsor over 7 years ago

  • Smaller single file generation
  • Obfuscated openInNewWindow to stop malicious actors (Like anti-virus) from injecting html halfway through our JS
kint - 2.0 beta 2

Published by jnvsor over 7 years ago

  • Adds single-file compilation! Now you can just download a single file and include it and hurray you're up and running!
    • Separate files for separate themes
kint - 2.0 beta 1

Published by jnvsor over 7 years ago

  • Renderer properties are protected not private to make renderer extending easier
  • A few bugfixes
  • A new source code parser that's a bit more robust than the preg_match black magic. Allows for access paths when the source file can't be parsed too
  • Since I don't plan on making any more large structural changes, this is the first beta release of 2.0. Breaking changes may still occur, but infrequently.
kint - 2.0 alpha 5

Published by jnvsor over 7 years ago

  • Composer setting extra.kint.disable-helper-functions allows conflicting packages and the root composer.json to disable the helper functions and use Kint purely as a library
  • A few bugfixes
kint - 2.0 alpha 4

Published by jnvsor over 7 years ago

  • Update NPM dependencies and mark it private to stop whining about repository info
  • Added build status to readme
  • Lots of bugfixes
  • Added PHPUnit and full testing of Kint_Parser
  • Improved performance in the rich renderer by caching method headers
  • Added Kint_Parser_Blacklist::$shallow_blacklist to blacklist objects except when they're dumped directly
  • 2.x is now the master branch. The 1.1+ versions are in the 1.x branch
kint - 2.0 alpha 3

Published by jnvsor over 7 years ago

  • Bugfixes
  • ToString plugin
  • Wrap plugins in a try-catch so that third party plugins don't leave user data in an unclean state if they explode
kint - 2.0 alpha 2

Published by jnvsor over 7 years ago

  • TravisCI support (Have to wait on @raveren to enable it on the repo, using one connected to my fork manually for the time being)
  • [+] icon now only opens one level by default. It seems like it was too hard to learn to click just about anywhere else so now it behaves like the rest of the bar. To open all descendants, doubleclick on the icon. To open all kint dumps on the page, tripleclick on the icon.
  • Text renderer: Added option to render without decorations
  • Rewrite parser plugin system. Now instead of a big static array full of classnames, the parser takes plugin instances through a method making it far better architecture. I also added a few mandatory methods to the plugins themselves to indicate which data types and parse stages they should use. This made for a huge performance boost and simplified some code (Removes the Kint_Parser_Plugin::parseChildren() method since the new methods achieve the same with less overhead)
  • Now detects and displays references (With the exception of the toplevel objects)
  • Now provides correct access paths for numeric string indexes in arrays, and integer properties in objects (Though these are read-only since PHP does some trippy stuff with them on assign)
  • Various bugfixes
kint - 2.0 alpha 1

Published by jnvsor over 7 years ago

This is the first alpha for the rewrite of Kint into 2.0. It's nearly 200 commits and a year and a half of work, but as the tag says: Alpha.

Feedback welcome - breaking API change suggestions should be accepted until beta at least

kint - 1.1

Published by jnvsor over 7 years ago

This is the release that's been put off for 2 years. It should be superseded by 2.0 in the foreseeable future

kint - Version 1.0.10

Published by raveren about 9 years ago

Maintenance release - squashed some bugs yo

kint - Version 1.0.6

Published by raveren over 9 years ago

Tabular display indices are now parsed as values (very convenient for array(timestamp => array) data)
Added Kint::$charEncodings back mainly for Russian speakers (see config.default.php)
misc fixes & improvements

kint - Version 1.0.2

Published by raveren over 9 years ago

Squashed two ugly bugs, can't be thankful enough for the quality feedback I receive.

Thanks to @JakeFalcor and @GMartigny.

kint - Version 1.0.0

Published by raveren over 9 years ago

Two years of continued development for this version brought hundreds of improvements and minor features.

kint -

Published by raveren about 10 years ago

kint - Stable version

Published by raveren about 11 years ago