PHP debugger which displays information about objects and variables in it's own draggable debug output.
- Key features:
- Dumping of protected variables
- Dumping of private variables
- Dumping of traversable data
- Configurable debug callbacks, which will be called on objects (if present). The output will then be dumped.
- Analysis of the methods of objects (comments, where declared, parameters). Comment dumping supports
- Output is draggable and has a closing button.
- All features can be globally configured in a configuration file.
- All features can be locally configured in the browser. The settings will be stored in a cookie.
- Configurable local opening function, to prevent other developers from calling your debug commands.
- Output can be saved to an output folder. Very useful in m2m communication.
- Several security measures to prevent prevent hangups with too large memory usage or a timeout.
- Fatal error handler with a full backtrace
- Code generation to reach the displayed values, if possible.
Analysis of an extbase query result
- Upload the whole kreXX directory to your webserver. Put it somewhere, where you are able to include it to your project.
- Include as early as possible the file bootstrap.php into your project. Normally this is the index.php.
composer require brainworxx/krexx`
Our composer page can be found here: https://packagist.org/packages/brainworxx/krexx
kreXX will be called from within the PHP source code:
krexx($myObject); // or as an alias: \Krexx::open($myObject)
// start the benchmark test and define a "moment" during the test \Krexx::timerMoment('meaningful string, like started db query 123'); // display the result \Krexx::timerEnd();
// PHP 5 only. // Register the fatal error handler \Krexx::registerFatal(); // Unregister the fatal error handler \Krexx::unregisterFatal();
// display the edit settings dialog \Krexx::editSettings();
Often enough a kreXX call will look like this:
Analysing "$this" means, that all protected and private values and methods are reachable from this point inside the code. When kreXX notices this, it will analyse all reachable variables and methods of this class.
// The following commands create a log file instead of a browser output. \Krexx::log($myObject); \Krexx::logBacktrace(); \Krexx::logTimerEnd();