Skip to content

Commit

Permalink
Merge pull request #991 from cakephp/5.x-nesting-depth
Browse files Browse the repository at this point in the history
5.x nesting depth
  • Loading branch information
markstory authored Jan 26, 2024
2 parents 03a655e + 9e12ea2 commit 8dbb82e
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 6 deletions.
6 changes: 6 additions & 0 deletions docs/en/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ Configuration

* ``DebugKit.ignoreAuthorization`` - Set to true to ignore Cake Authorization plugin for DebugKit requests. Disabled by default.

* ``DebugKit.maxDepth`` - Defines how many levels of nested data should be shown in general for debug output. Default is 5.
WARNING: Increasing the max depth level can lead to an out of memory error.::

// Show more levels
Configure::write('DebugKit.maxDepth', 8);

* ``DebugKit.variablesPanelMaxDepth`` - Defines how many levels of nested data should be shown in the variables tab. Default is 5.
WARNING: Increasing the max depth level can lead to an out of memory error.::

Expand Down
12 changes: 7 additions & 5 deletions src/Panel/RequestPanel.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
*/
namespace DebugKit\Panel;

use Cake\Core\Configure;
use Cake\Error\Debugger;
use Cake\Event\EventInterface;
use DebugKit\DebugPanel;
Expand All @@ -35,6 +36,7 @@ public function shutdown(EventInterface $event): void
/** @var \Cake\Controller\Controller $controller */
$controller = $event->getSubject();
$request = $controller->getRequest();
$maxDepth = Configure::read('DebugKit.maxDepth', 5);

$attributes = [];
foreach ($request->getAttributes() as $attr => $value) {
Expand All @@ -43,15 +45,15 @@ public function shutdown(EventInterface $event): void
} catch (Exception $e) {
$value = "Could not serialize `{$attr}`. It failed with {$e->getMessage()}";
}
$attributes[$attr] = Debugger::exportVarAsNodes($value);
$attributes[$attr] = Debugger::exportVarAsNodes($value, $maxDepth);
}

$this->_data = [
'attributes' => $attributes,
'query' => Debugger::exportVarAsNodes($request->getQueryParams()),
'data' => Debugger::exportVarAsNodes($request->getData()),
'cookie' => Debugger::exportVarAsNodes($request->getCookieParams()),
'get' => Debugger::exportVarAsNodes($_GET),
'query' => Debugger::exportVarAsNodes($request->getQueryParams(), $maxDepth),
'data' => Debugger::exportVarAsNodes($request->getData(), $maxDepth),
'cookie' => Debugger::exportVarAsNodes($request->getCookieParams(), $maxDepth),
'get' => Debugger::exportVarAsNodes($_GET, $maxDepth),
'matchedRoute' => $request->getParam('_matchedRoute'),
'headers' => [
'response' => headers_sent($file, $line),
Expand Down
4 changes: 3 additions & 1 deletion src/Panel/SessionPanel.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
*/
namespace DebugKit\Panel;

use Cake\Core\Configure;
use Cake\Error\Debugger;
use Cake\Event\EventInterface;
use DebugKit\DebugPanel;
Expand All @@ -34,7 +35,8 @@ public function shutdown(EventInterface $event): void
/** @var \Cake\Http\ServerRequest|null $request */
$request = $event->getSubject()->getRequest();
if ($request) {
$content = Debugger::exportVarAsNodes($request->getSession()->read());
$maxDepth = Configure::read('DebugKit.maxDepth', 5);
$content = Debugger::exportVarAsNodes($request->getSession()->read(), $maxDepth);
$this->_data = compact('content');
}
}
Expand Down

0 comments on commit 8dbb82e

Please sign in to comment.