Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Kint Laravel Package

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.

View on GitHub
Deep Wiki
Context7
6.1.0

PHP 8.5 support

6.0.1
  • Expand minitrace when dump is expanded
  • New SVG icons for buttons
  • Performance improvements (Including a massive performance bug in chrome)
  • Misc Bugfixes
6.0

Spanning 205 commits and rewrites of numerous systems, kint 6 is the biggest major release since the first full rewrite started in 2015.

Features

  • "Open in new window" has been replaced with "Move to folder"
  • Lots more modules enabled by default
  • Lots more features support text mode
  • PHP 8.4 support
    • Property hooks
    • Aviz
    • Dom\XMLDocument/Dom\HTMLDocument
  • Full JS rewrite
  • Large internal rewrites lead to up to 33% faster runtime and 30% less memory usage despite all these new features (Depending on workload)

Migration

If 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.

Settings

The following settings were renamed or moved:

  • RichRenderer::$js_nonce => AbstractRenderer::$js_nonce
  • RichRenderer::$css_nonce => AbstractRenderer::$css_nonce
  • Kint::$file_link_format => AbstractRenderer::$file_link_format
  • Kint::$app_root_dirs => Utils::$path_aliases
  • BlobValue::$char_encodings => Utils::$char_encodings
  • BlobValue::$legacy_encodings => Utils::$legacy_encodings

Plugins

The 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

5.1.1

Fix #412 suppressed warnings being raised to TypeError with strict_types

5.1.0
  • Supports 8.3
  • New theme aante-dark based on aante-light by @LoranRendel
  • RichRenderer::$timestamp and TextRenderer::$timestamp can now be provided a date() compliant string to place in the dump footer
5.0.7
5.0.6
5.0.1
5.0

Kint 5 supports PHP 7.1 and above

  • Added spl_object_id support for PHP 7.2 and above. This displays in the same way as var_dump, symfony/dump, and xdebug's var_dump
  • Support displaying readonly modifier on properties
  • Supports visibility modifiers on class constants
  • Several callfinder fixes and tests for PHP8+ features (First class callables, DNF types)
  • Bugfixes:
    • SerializePlugin: Behaved very erratically before
    • Shows uninitialized private parent properties
    • Various others (See git log)
  • Added typehints wherever possible. Static analysis with psalm showed room for improvement, leading to several new interfaces made to ensure consistent constructors for static calls to eg. createFromStatics()
4.2.0

Since 4.1

  • Various bugfixes
  • CSP support
  • Enum support
4.1.3
4.1.1

Fix #379 Undefined constant in PHP development server

4.1
  • Supports setting nonce attributes on script and style tags for CSP through Kint\Renderer\RichRenderer::$js_nonce and Kint\Renderer\RichRenderer::$css_nonce
  • Detects VT100 support on windows CLI to enable UTF8 and color support. Older windows versions or versions below PHP 7.2 have been changed to plain ASCII decorations since the original hasn't been working well for a while
4.0
  • The folder is now off by default and can be enabled via the existing setting
  • Much improved search functionality
  • The PSR-11 service container is shallow-blacklisted by default. This will vastly improve performance on most frameworks such as symfony & laravel by stopping recursive parsing at the DI container unless you dump it explicitly
  • TracePlugin now supports blacklisting stack frames from paths, such as your /vendor/ folder
  • Numeric arrays with more than 1000 items in them will only dump the first 50 recursively. You can disable or configure this with ArrayLimitPlugin
  • Supports PHP 8.1
  • Lots of little stuff

Breaking changes

  • Minimum supported PHP version is now 5.6
  • Kint::$max_depth has been renamed Kint::$depth_limit to match internals
  • Kint\Renderer\RichRenderer::$object_plugins has been renamed $value_plugins
  • The Object 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() instead
  • For plugin development there have been a lot of internal changes
    • The whole Object namespace has been renamed Zval in anticipation of naming conflicts
    • parseDeep has been removed
3.3
  • Fixes for PHP 7.4
  • Namespaced functions will now be normalized correctly
  • Colors are automatically disabled in windows in CliRenderer
  • If (for some reason) you have neither iconv nor mbstring available, Kint will just assume ASCII and hope for the best
  • Event handlers for click/keypress are now registered as capture so other events on the page won't override them

I will be starting work on a new major version next. 3.x support will continue for bugfixes

3.2.2
  • Checks if the previous style and script tags still exist when deduplicating ajax calls in case the originals have been removed
3.2.1
  • FsPathPlugin now works for windows paths too
  • ToStringPlugin is now opt-in because of misbehaving third party libraries that cause fatal errors in it
  • Fixed search when folder is disabled
3.2
  • Callfinder now supports calling kint with a trailing comma in PHP 7.3
  • Callfinder now supports expression detection with PHP 7.4's upcoming ??= operator
  • MysqliPlugin: Fixed some connection failure edge cases that would produce warnings
  • Rich SourcePlugin: Line numbers are back, and paste accuracy bugs are fixed
  • Added a test shim to allow testing on PHP 7.4/8+
  • Removed ruby dependency for sass formatting/compilation
3.1
  • Fix folders to work when loaded with ajax
  • RichRenderer: Allow dumps to be put into the folder individually
  • export-ignore phar file for sensitive IDEs
  • Added MysqliPlugin (Opt-in)
3.0

We'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

3.0-alpha2
  • Adds a JS search button
  • Fixes some IE quirks
3.0-alpha1

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

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 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
  • 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 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

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-rc1
  • Smaller single file generation
  • Obfuscated openInNewWindow to stop malicious actors (Like anti-virus) from injecting html halfway through our JS
2.0-beta2
  • 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-beta1
  • 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.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor
spatie/laravel-javascript-views