ryphoe / php-ref
此包已被弃用且不再维护。没有建议的替代包。
PHP >=7.1.0的print_r/var_dump的更佳替代品
v1.3.2
2021-09-26 00:34 UTC
Requires
- php: >=7.1.0
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模式)