i07/php-ref

PHP 5.3+ 的一个更友好的 print_r/var_dump 替代方案

该包的官方仓库似乎已不存在,因此该包已被冻结。

v1.2 2015-11-15 12:47 UTC

This package is not auto-updated.

Last update: 2022-01-20 04:12:26 UTC


README

REF,或 r() 是 PHP 的 print_r / var_dump 函数的一个更友好的替代方案。

演示

需求

  • (服务器) PHP 5.3+ (5.4+ 显示更多信息)
  • (客户端) 任何浏览器,当然不包括 IE 8 及以下版本

使用 Composer 安装

将 REF 添加到您的 composer.json

{
    "require": {
        "digitalnature/php-ref": "dev-master"
    }
}

现在运行以下命令告诉 composer 下载包:

$ php composer.phar update digitalnature/php-ref

Composer 会将包安装到 vendor/digitalnature 目录。

使用方法

基本示例

// include the class (not needed if project runs with Composer because it's auto-loaded)
require '/full/path/to/ref.php';

// display info about defined classes
r(get_declared_classes());

// display info about global variables
r($GLOBALS);

要使用文本模式打印,您可以使用 rt() 函数

rt($var);

要打印信息后终止脚本,请使用按位非运算符作为前缀

~r($var);   // html
~rt($var);  // text

在前面加上错误控制运算符 (@) 将返回信息

$output = @r($var);   // html
$output = @rt($var);  // text

键盘快捷键(必须启用 JavaScript)

  • X - 收起/展开所有级别
  • Ctrl + X - 切换显示状态

要修改全局配置,请调用 ref::config()

// example: initially expand first 3 levels
ref::config('expLvl', 3);

您也可以在 php.ini 文件中添加配置选项,如下所示

[ref]
ref.expLvl = 3
ref.maxDepth = 4

目前可用的选项及其默认值

选项 默认值 描述
'expLvl' 1 初始展开级别(仅针对 HTML 模式)。负值将展开所有级别
'maxDepth' 6 最大深度(0 禁用);注意,禁用它或设置高值可能在大数据输入时产生超过 100+ MB 的页面
'showIteratorContents' FALSE 显示迭代器数据(键和值)
'showResourceInfo' TRUE 显示关于资源的信息
'showMethods' TRUE 显示对象上的方法和参数信息
'showPrivateMembers' FALSE 包含私有属性和方法
'showStringMatches' TRUE 对日期、文件、JSON 字符串、序列化数据、正则表达式模式等进行字符串匹配并显示(慢)
'formatters' array() 自定义/外部格式化程序(作为关联数组:format => className)
'shortcutFunc' array('r', 'rt') 用于检测输入表达式的快捷函数。如果它们是命名空间的,则必须存在命名空间(不支持方法)
'stylePath' '{:dir}/ref.css' 自定义样式的本地路径(仅 HTML);FALSE 表示不包含 CSS。
'scriptPath' '{:dir}/ref.js' 自定义 JavaScript 的本地路径(仅 HTML);FALSE 表示不包含 JavaScript(工具提示/切换/键盘快捷键需要 JS)
'showUrls' FALSE 获取有关 URL 的信息。设置为 false 可以提高性能(需要 showStringMatches 为 TRUE)
'timeout' 10 在指定秒数后停止执行,强制生成不完整的列表。适用于所有调用
'validHtml' FALSE 仅适用于HTML模式。是否生成W3C有效的HTML(代码输出更大)或难以理解的、可能不兼容浏览器的、但更小的代码输出

类似项目

待办事项

  • 如果缺失,从父或原型继承DocBlock注释
  • 重构“气泡”(文本模式)
  • 正确缩进多行字符串(文本模式)
  • 将分隔符标记移动到 ::before 和 ::after 伪元素(HTML模式)

许可证

https://open-source.org.cn/licenses/mit-license.html