You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently planning to set up a next branch for a new major version of Kint. It will drop 5.1 and 5.2 support. 2.x will be in active development at least until next hits beta
I've broken Kint 2.x on 5.1/5.2 in the past by accident. Repeatedly. But I never received any complaints, so I can only presume there are very few people actually using these horrifyingly ancient PHP versions.
We can build a phar file instead of a bigass eval string.
Bug reports using single file will show a proper file and line number from inside the phar file
We can use namespaces
We can clean up a lot of old legacy compat code
Kint::dumpArray is a bit of a hack. We can take this opportunity to rethink the way the Kint facade goes about setting up and make it more flexible.
It gives me an excuse to delay porting the frontend to vue (Man I hate JS)
Good opportunity for cleanup in general... More to come
Note that this major bump will be less about features than 2.0 and more about internal code quality
Any (architectural?) suggestions?
Update May 18
Moved master to 2.x, moved next to master
Big improvement to Travis CI setup
Now has separate stages, with format, build, and static analysis (And a quick test pass) running first before the full test pass
Much newer dependencies allowed now (Despite CI)
Added Psalm to bolster the pre-existing phpstan static analysis
BasicObject::blank no longer auotmatically assigns name as access path
BasicObject::transplant now transplants parameter into this, instead of this into parameter
Tagged 3.0-alpha1
Before beta I want to:
Move script/style dedupe to shared JS file so it works on plain as well
Finish client-side search option
Decide whether to start using exceptions, or to leave that for the next major version
Update May 12
Nearly there. Going to add Psalm for some extra static analysis next to phpstan, finish writing up some Object tests, and close #11 before pushing a beta tag.
Improved test performance
Now works with symfony's mbstring and iconv polyfills as well as normal mbstring and iconv
Microtime and idelink related JS will be shared between RichRenderer and PlainRenderer
Base64Plugin will no longer match hexadecimal strings. They're unlikely to be base64.
Removed HHVM specific code and CI tests. HHVM 3.26 finally broke BC with PHP and will not be supported from here on.
Rich and Plain renderers now have an option to always dump their CSS and JS to the browser, for when you're not worried about a few kb extra bandwidth per call
Enabled many more php-cs-fixer rules for stricter code-style. This touched pretty much everything.
Thanks to one of those rules the LICENSE file is now in a docblock at the top of all source files
General bugfixes
Update Apr 26
New icons and button styles for the "New window" and "Access path" buttons
The first tab on throwables (IE exceptions) is now a source representation of the exception source, since it's not included in the trace. There's usually a condition near the throw that can tell you a lot about the cause
Uses the new npm ci command
Moved object property sorting to opt-in on renderers instead of always-on
Unified init files (Thanks to phar file)
Added constant that has the same effect as the extras marker to disable helpers
Moved \Kint to \Kint\Kint and alias it on boot.
Added constant and extras marker to disable alias just like helpers
Added microtime support to text renderer plugin
Microtime parser plugin now supports microtime(true)
Added \Kint\Utils full of utility functions like isSequential
Added 2-level encoding support to BlobObject: First uses mbstring to detect multibyte encodings, then uses iconv to detect ambiguous legacy encodings
Refactored the main Kint class
Added tests for the most complex representations
Fixed some bugs
On my todo list:
Make a better documentation describing the encodings and their behavior
Rework and simplify the logic around "Renderer has been run" checks
Add idelink calls to file names in traces in plain and rich renderers
Add javascript support to plain renderer's microtime and idelink
Add client-side search option
Off my todo list:
Frontend rewrite in vue is cancelled. Performance was horrible and I was dreading the work anyway
Update Feb 13
In version 3 so far:
I've moved everything around, all classes are namespaced now (Except \Kint)
This also means a minimum version bump to 5.3, which won't be a big deal. I broke 2.x on 5.1/5.2 before without anyone noticing.
The single file build is going to be distributed as a phar package instead of a single file, since this makes a lot of things easier (Such as no need to inline the built js/css files) This also needed some work to make the build reproducible for CI.
I've added a flag to the rich renderer that moves all the rich dumps on the page to a foldout fixed to the bottom of the browser window on page load. It's on by default and should probably help when dumping inside small columns
I've added phpstan (static analyser) that helped catch a few bugs. It runs in CI too
I've added code coverage markers to the test cases which helped find a few missing edge cases. Overall I've currently got 33% of lines covered, with the important ones (\Kint, Parser, CallFinder) being the most important. All tests that have been written have 100% coverage on the relevant classes, but there's a ton more to write that I never get around to.
I tried to get scrutinizer attached to the repo but I never finished it, and it seems to spit out an awful lot of false positives or needless nitpicking so I'm not in a rush there.
General bugfixes and cleanups
On my todo list:
Better choice of icons for new window & access path
Write tests for all the object/representation classes
Since HHVM has officially dropped php compatibility I intend to remove it from CI soon-ish
I'd like to add a text renderer plugin for microtime and SimpleXMLElement
I'd like to switch eslint to prettier, since it's a proper formatter and won't just scream at you if you format things wrong
Exceptions should render the trace including the exception frame itself
The big ones that have me worried the most:
I want to rewrite the frontend in vue. With vue we can keep structuring the data like html without having to move everything into a json structure, and it should improve performance:
In the server by moving server side branches to the client
In the client by vastly reducing the amount of DOM elements in a large dump
I want to rewrite the main \Kint dump routine. Right now things like dumpArray are just hacked on for backwards comparabilities sake but ideally the whole thing would look very different.
The text was updated successfully, but these errors were encountered:
Currently planning to set up a
next
branch for a new major version of Kint. It will drop 5.1 and 5.2 support. 2.x will be in active development at least untilnext
hits betaKint::dumpArray
is a bit of a hack. We can take this opportunity to rethink the way theKint
facade goes about setting up and make it more flexible.Note that this major bump will be less about features than 2.0 and more about internal code quality
Any (architectural?) suggestions?
Update May 18
master
to2.x
, movednext
tomaster
BasicObject::blank
no longer auotmatically assigns name as access pathBasicObject::transplant
now transplants parameter into this, instead of this into parameterBefore beta I want to:
Update May 12
Nearly there. Going to add Psalm for some extra static analysis next to phpstan, finish writing up some
Object
tests, and close #11 before pushing a beta tag.RichRenderer
andPlainRenderer
php-cs-fixer
rules for stricter code-style. This touched pretty much everything.LICENSE
file is now in a docblock at the top of all source filesUpdate Apr 26
npm ci
command\Kint
to\Kint\Kint
and alias it on boot.microtime(true)
\Kint\Utils
full of utility functions likeisSequential
BlobObject
: First uses mbstring to detect multibyte encodings, then uses iconv to detect ambiguous legacy encodingsKint
classOn my todo list:
Off my todo list:
Update Feb 13
In version 3 so far:
On my todo list:
The big ones that have me worried the most:
The text was updated successfully, but these errors were encountered: