kint-php/kint
Kint is a powerful PHP debugging and profiling tool that dumps variables with rich, readable output (CLI and browser). It offers deep inspection of arrays/objects, stack traces, timing/memory info, and easy integration for faster troubleshooting in any PHP project.
PHP 8.5 support
Spanning 205 commits and rewrites of numerous systems, kint 6 is the biggest major release since the first full rewrite started in 2015.
Dom\XMLDocument/Dom\HTMLDocumentIf you're just using Kint out of the box it should work the same as Kint 5. Depending on how much customizing you did you may have more work on your plate.
The following settings were renamed or moved:
RichRenderer::$js_nonce => AbstractRenderer::$js_nonceRichRenderer::$css_nonce => AbstractRenderer::$css_nonceKint::$file_link_format => AbstractRenderer::$file_link_formatKint::$app_root_dirs => Utils::$path_aliasesBlobValue::$char_encodings => Utils::$char_encodingsBlobValue::$legacy_encodings => Utils::$legacy_encodingsThe plugin system has been completely reworked, in both parser and renderers. If you rely on custom plugins they will need to be ported to Kint 6.
Thanks to @DRSDavidSoft for the CSS work
Fix #412 suppressed warnings being raised to TypeError with strict_types
RichRenderer::$timestamp and TextRenderer::$timestamp can now be provided a date() compliant string to place in the dump footerKint 5 supports PHP 7.1 and above
createFromStatics()Since 4.1
Fix #379 Undefined constant in PHP development server
Kint\Renderer\RichRenderer::$js_nonce and Kint\Renderer\RichRenderer::$css_nonce/vendor/ folderKint::$max_depth has been renamed Kint::$depth_limit to match internalsKint\Renderer\RichRenderer::$object_plugins has been renamed $value_pluginsObject namespace has been renamed Zval - So certain class statics will have been renamed (eg. Kint\Object\BlobObject::$char_encodings to Kint\Zval\BlobValue::$char_encodings)d(1) special case has been removed (Didn't work in edge cases) Call Kint::trace() insteadObject namespace has been renamed Zval in anticipation of naming conflictsI will be starting work on a new major version next. 3.x support will continue for bugfixes
??= operatorWe're here!
Kint 3 bumps the minimum requirement up to PHP 5.3, comes separately in a phar file, and now uses namespaces.
The facade has been heavily rewritten to make it easier to reuse instances of Kint for performance.
kint-php/kint-js and kint-php/kint-twig have been updated to match Kint 3, with kint-twig making heavy use of the new facade features
The rich renderer now sends dumps to a folder docket at the bottom of your browser by default. You can turn this off with Kint\Renderer\RichRenderer::$folder = false if needed
The first tag of the new major version. This drops support for PHP 5.1/5.2, but improves code quality all around. A more or less full list of changes is available in issue #260
__toStringMost of this release is bugfixes, but there are a few notable changes.
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.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
d(1);) show a backtrace to the same depth as Kint::trace()mb_detect_encoding only practically supports
Kint_Object_Blob::escape and Kint_Renderer_Rich_Plugin::renderLockedHeader, to be removed in next major version.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:
[+] once will only unfold one level. Keyboard and mouse control can be used at the same timepreg_match black magic. Allows for access paths when the source file can't be parsed tooHow can I help you explore Laravel packages today?