Releases: kint-php/kint
Releases · kint-php/kint
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
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 theKint_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
-
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
- 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 asKint::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
andKint_Renderer_Rich_Plugin::renderLockedHeader
, to be removed in next major version.
- Deprecates
- 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
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
- Smaller single file generation
- Obfuscated openInNewWindow to stop malicious actors (Like anti-virus) from injecting html halfway through our JS
2.0 beta 2
- 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
- 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
- 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
- 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