Skip to content

Releases: kint-php/kint

2.2

06 Sep 18:13
Compare
Choose a tag to compare
2.2
  • Bugfixes
  • Added special access paths for some magic methods
  • Sort methods by line number after hierarchy
  • Sort properties with strnatcasecmp instead of strcmp
  • Added blacklist to ToString plugin, add SimpleXMLElement by default
  • Removed the value representation from unknown types
  • Removed object property reflection
  • Made some parser plugins opt-in:
    • Binary
    • Serialize
    • DOMNode/DOMIterator
  • Renderers can now alter parser plugins before parsing
    • The text-based renderers now disable all the plugins they don't use ahead of time
  • Added special access paths for more magic methods like __toString
  • Dropped automated testing of PHP 5.2
    • 5.2 will be dropped when TravisCI drops it in april
    • 5.1 and 5.2 are still technically supported, but since (hopefully) no-one uses those any huge bugs will be fixed on an as-reported basis.
  • Added Kint::dumpArray to allow you to supply your own object seeds (Names and access paths) along with an array of data. Useful for integrating with other systems.
    • This allows correct access paths for Kint::trace()

2.1.2

03 Jul 21:02
Compare
Choose a tag to compare

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

2.1.1

20 Jun 18:34
Compare
Choose a tag to compare
  • 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

2.1

13 May 20:26
Compare
Choose a tag to compare
2.1
  • 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

2.0

22 Apr 15:12
Compare
Choose a tag to compare
2.0

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

2.0 release candidate 1

22 Apr 07:28
Compare
Choose a tag to compare
  • Smaller single file generation
  • Obfuscated openInNewWindow to stop malicious actors (Like anti-virus) from injecting html halfway through our JS

2.0 beta 2

19 Apr 21:15
Compare
Choose a tag to compare
2.0 beta 2 Pre-release
Pre-release
  • 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

2.0 beta 1

15 Apr 19:55
Compare
Choose a tag to compare
2.0 beta 1 Pre-release
Pre-release
  • 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.

2.0 alpha 5

14 Apr 06:04
Compare
Choose a tag to compare
2.0 alpha 5 Pre-release
Pre-release
  • 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

2.0 alpha 4

09 Apr 19:40
Compare
Choose a tag to compare
2.0 alpha 4 Pre-release
Pre-release
  • 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