ryphoe/php-ref

此包已被弃用且不再维护。没有建议的替代包。

PHP >=7.1.0的print_r/var_dump的更佳替代品

v1.3.2 2021-09-26 00:34 UTC

This package is auto-updated.

Last update: 2023-11-26 05:27:09 UTC


README

REF,或r()是PHP的print_r / var_dump函数的更佳替代品。

DEMO

要求

  • (服务器) PHP 7.1+
  • (客户端) 任何浏览器,当然不包括IE 8及以下版本

使用Composer安装

将REF添加到您的composer.json

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

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

$ php composer.phar update ryphoe/php-ref

Composer会将捆绑包安装到目录vendor/ryphoe中。

用法

基本示例

// 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(代码输出较大)或难以理解、可能不兼容浏览器的、但代码输出较小的代码

类似项目

待办事项(TODOs)

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

许可证

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