simplecomplex/inspect

用于检查变量和堆栈跟踪的PHP和JavaScript库。

4.0.0 2023-11-04 10:21 UTC

README

获取Inspect

// If dependency injection container exists.
$inspect = $container->get('inspect');
// Otherwise use maker.
$inspect = \SimpleComplex\Inspect\Inspect::getInstance();

主要方法和选项

(int) $options

depth: 最大对象/数组递归深度;DEPTH_DEFAULT/TRACE_DEPTH_DEFAULT

(array) $options

  • (int) depth: 最大对象/数组递归深度;DEPTH_DEFAULT/TRACE_DEPTH_DEFAULT
  • (int) limit: 最大跟踪帧;TRACE_LIMIT_DEFAULT
  • (int) code: 错误代码,覆盖异常代码;无
  • (int) truncate: 字符串截断;TRUNCATE_DEFAULT
  • (arr) skip_keys: 跳过那些对象/数组键;无
  • (arr) needles: 在字符串中替换;NEEDLES/NEEDLES_ESCAPE_HTML
  • (arr) replacers: 在字符串中替换;REPLACERS/REPLACERS_ESCAPE_HTML
  • (bool) escape_html: 在字符串中替换;ESCAPE_HTML
  • (int) output_max: 在字符串中替换;OUTPUT_DEFAULT
  • (int) exectime_percent: 在字符串中替换;EXEC_TIMEOUT_DEFAULT
  • (bool) rootdir_replace: 在字符串中替换根目录;ROOT_DIR_REPLACE
  • (int) wrappers: 要隐藏的包装函数/方法数;零

inspect($subject, $options = []): Inspector

执行变量检查,除非 arg $subject 是可抛出的;然后跟踪。

$var = 'what is this?'; $xcptn = new \Exception('Doh');

// Inspect:
$inspect->inspect($var);
// Trace:
$inspect->inspect($xcptn);

variable($subject, $options = []): Inspector

强制变量检查,即使主题是可抛出的。

$inspect->variable($var);

trace($throwableOrNull, $options = []): Inspector

跟踪异常或执行回溯。

// Trace exception:
$inspect->trace($xcptn);
// Do back-trace:
$inspect->trace(null);

日志记录

inspect|variable|trace() 返回的 Inspector 可转换为字符串。直接传递给 PSR 日志记录器

$logger->debug('Darned ding' . "\n" . $inspect->variable($var));

或者使用 Inspector 的链式 PSR 日志记录器方法

log($level = 'debug', $message = '', array $context = []): void

$inspect->variable($var)->log('debug', 'darned ding');

JavaScript

(object) options

  • (string) message: 内容标题和选项作为字符串,也解释为消息(除'protos'/'func_body'外)
  • (integer) depth: 数组|对象递归最大深度(默认10,最大10)
  • (boolean) protos: 分析原型属性
  • (boolean) func_body: 打印函数体
  • (string) type: 默认 'inspect'/'inspect trace'
  • (string) severity: 默认 'debug'/'error'

输出到控制台

window.inspect(u, options);
window.inspect.trace(er, options);

描述

生成整洁且信息丰富的变量转储和异常/回溯。
量身定制并准备就绪进行日志记录 - inspect/variable/trace() 方法返回一个可转换为字符串的对象。

安全

检查器和跟踪器保证不会失败。简单的PHP:var_dump()易于在递归(如$ GLOBALS)时引发PHP错误,因为存在引用。
检查将其递归限制在子数组/对象中。它还跟踪其生成的输出大小。最后,它确保最大执行时间不会超过。

安全

检查隐藏名为'pw'、'pass'和'password'的数组/对象桶的值。
并可以使用'skip_keys'选项隐藏其他敏感值。

PHP和JavaScript

检查器由用于服务器端检查和跟踪的PHP库以及用于客户端相同功能的JavaScript库组成。
注意:JavaScript库自2015年以来未进行维护。

成熟度

自2010年以来,该库以各种形式存在。核心已不断改进,而包装已从相当老式的OOP模式演变到稳健但非正交的Drupal风格,最终演变成良好的PSR/Composer模式。

在以下内容中使用 - 扩展 - Drupal

Drupal Inspect 模块的核心是 SimpleComplex Inspect。该 Drupal 模块(包括 D7 和 D8 版本)扩展了 Inspect,以适应上下文环境——也就是说,在合理的情况下使用 Drupal 的 API 和功能。

MIT 许可

许可和版权说明

要求

  • PHP >=8.1