VarDumper组件
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
VarDumper组件
VarDumper组件提供了机制穿过任意PHP变量。之上,它提供了一个更好
dump ()
功能,您可以使用代替var_dump。
安装
您可以安装组件在两个不同的方面:
- 安装它通过作曲家(
ob娱乐下载symfony / var-dumper
在Packagist); - 使用官方的Git存储库(https://github.com/ob娱乐下载symfony/var-dumper)。
请注意
如果使用它在一个Symfony应用程序,确ob娱乐下载保启用了DebugBundle在你app / AppKernel.php
文件。
dump()函数
VarDumper组件创建一个全球性的dump ()
功能,您可以使用,而不是如。var_dump。通过使用它,您将获得:
- 每个对象和资源类型专业观点如过滤原则内部而倾倒一个代理实体,或得到更多的洞察力在打开文件stream_get_meta_data;
- 可配置的输出格式:HTML或彩色命令行输出;
- 转储内部引用的能力,要么是软的(对象或资源)或硬的(
= &
数组或对象属性)。重复出现相同的对象数组/资源不会出现一次又一次了。此外,你可以检查你的参考结构数据; - 运营能力的输出缓冲处理程序。
例如:
1 2 3 4 5 6
需要__DIR__。“/供应商/ autoload.php”;/ /创建一个变量,它可以是任何东西!美元someVar=……;转储(美元someVar);
默认情况下,选择输出格式和目标是基于你当前的PHP SAPI:
- 在命令行(CLI SAPI),输出
STDOUT
。这可奇怪因为这绕过一些PHP的输出缓冲机制; - 在其他sapi,转储被编写为常规的HTML输出。
请注意
如果你想赶上转储输出作为一个字符串,请阅读先进的文档欧宝官网下载app它包含的例子。您还将了解如何更改格式或将输出重定向到任何你想要的。
提示
以有dump ()
函数总是可用的运行时任何PHP代码,你可以在你的电脑安装它在全球范围内:
- 运行
全球需要symfony / var-dumperob娱乐下载作曲家
; - 添加
auto_prepend_file = ${回家}/ .composer /供应商/ autoload.php
到你的php . ini
文件; - 不时地运行
全球更新symfony / var-dumpeob娱乐下载r作曲家
有最新的bug修复。
DebugBundle和树枝集成
DebugBundle允许更大的集成组件的Symfony的完整框架。ob娱乐下载这是默认启用的dev和测试Symfony标准版的环境。ob娱乐下载
自生成(甚至调试)输出控制器或在您的应用程序可能会打破它的模型如发送HTTP标头或损坏你的视图、包配置dump ()
函数,变量是倾倒在web调试工具栏。
但如果显示的工具栏不能因为你如死
/退出
或发生致命错误,然后转储写在常规的输出。
在一根树枝模板中,两个结构变量可供倾销。选择这两个主要是个人口味的问题,还是:
{%转储foo。酒吧%}
是去当原始模板输出不得修改:变量不是倾销内联,但是在web调试工具栏;- 相反,
{{转储(foo.bar)}}
转储内联,因此可能不适合你的用例(例如,你不应该使用它或在HTML属性<脚本>
标签)。
这种行为可以改变配置dump.dump_destination
选择。阅读更多关于这个和其他选项DebugBundle配置参考。
在PHPUnit)中使用VarDumper组件测试套件中
VarDumper组件提供了一个特征可以帮助为PHPUnit)写一些你的测试。
这将给你提供两个新的断言:
- assertDumpEquals ()
- 验证变量的转储作为第二个参数匹配预期的转储提供作为第一个参数的字符串。
- assertDumpMatchesFormat ()
-
就像以前的方法,但是接受预期转储中占位符,根据
assertStringMatchesFormat
PHPUnit)提供的方法。
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
类ExampleTest扩展\PHPUnit_Framework_TestCase{使用\ob娱乐下载\组件\VarDumper\测试\VarDumperTestTrait;公共函数testWithDumpEquals(){美元testedVar=数组(123年,“foo”);美元expectedDump=< < < EOTXT数组:2 [0 = > 123 1 = > " foo "] EOTXT;美元这- >assertDumpEquals (美元expectedDump,美元testedVar);}}
转储和输出示例
对于简单的变量,输出应该简单阅读。这里有一些例子显示第一个PHP中定义一个变量,那么它的转储表示:
1 2 3 4 5 6 7 8
美元var=数组(一个简单的字符串的= >“在5个元素的数组,“浮”= >1.0,“整数”= >1,“一个布尔”= >真正的,的一个空数组= >数组());转储(美元var);
请注意
灰色箭头是一个切换按钮隐藏/显示嵌套结构的孩子。
1 2 3 4 5 6 7
美元var=“这是一个多行字符串。\ n”;美元var。=“徘徊在一个字符串显示其长度。\ n”;美元var。=“utf - 8编码的字符串的长度计算utf - 8字符。\ n”;美元var。=“Non-UTF-8字符串长度是计入八隅体大小。\ n”;美元var。=“因为这个\ xE9八隅体(\ \ xE9) \ n”;美元var。=“这个字符串不是utf - 8有效,因此,“b”前缀。\ n”;转储(美元var);
1 2 3 4 5 6 7 8 9
类PropertyExample{公共美元publicProperty=的“+”前缀表示公共属性”,;受保护的美元protectedProperty=' ' # '保护的”——“私营企业”。;私人美元privateProperty=“徘徊在一个属性显示提醒。”;}美元var=新PropertyExample ();转储(美元var);
请注意
“# 14”是内部对象句柄。它允许比较同一对象的两个连续转储。
1 2 3 4 5 6 7 8
类DynamicPropertyExample{公共美元declaredProperty=“这类定义中声明的属性”;}美元var=新DynamicPropertyExample ();美元var- >undeclaredProperty =运行时添加动态属性有”在他们的名字。;转储(美元var);
1 2 3 4 5 6 7
类ReferenceExample{公共美元信息=“循环和兄弟姐妹引用显示为“#号”。\nHovering them highlights all instances in the same dump.\n";}美元var=新ReferenceExample ();美元var- >aCircularReference =美元var;转储(美元var);
1 2 3 4 5 6 7 8
美元var=新\ ErrorException (“对于一些对象,属性有特殊值\ n”。“最好的表示为常量,像\ n”。”下面的“严重性”。悬停显示值(“2”)。\ n”,0,E_WARNING);转储(美元var);
1 2 3 4 5 6 7 8
美元var=数组();美元var(0]=1;美元var(1]= &美元var(0];美元var(1)+ =1;美元var(2]=数组(“硬引用(圆形或兄弟姐妹)”);美元var(3]= &美元var(2];美元var(3][]=“‘数量’倾倒使用前缀。”;转储(美元var);
1 2 3 4 5
美元var=新\ ArrayObject ();美元var[]=“一些资源和特殊的物品,例如当前”;美元var[]=“有时最好使用虚拟”来表示;美元var[]=”属性,描述他们的内部状态。”;转储(美元var);
1 2 3 4 5 6 7 8
美元var=新AcmeController (“当一个转储超过它的最大项目限制,\ n”。”或当遇到一些特殊的对象\ n”。“孩子们可以取代一个省略号和\ n”。”(可选),后跟一个数字表示\ n”。“许多已被移除;“9”在这种情况下。\ n”);转储(美元var);