先进的VarDumper组件的使用
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
先进的VarDumper组件的使用
的dump ()
函数是一个瘦包装器和一个更加方便的方式来调用VarDumper:转储()。你可以改变这个函数通过调用的行为VarDumper: setHandler(可赎回美元)。调用dump ()
将被转发到吗美元可调用的
。
通过添加一个处理程序,您可以定制切割,矿用汽车和脚轮如下解释。处理函数的一个简单的实现可能会看起来像这样:
1 2 3 4 5 6 7 8 9 10 11
使用ob娱乐下载\组件\VarDumper\VarDumper;使用ob娱乐下载\组件\VarDumper\切割\VarCloner;使用ob娱乐下载\组件\VarDumper\自动倾卸车\CliDumper;使用ob娱乐下载\组件\VarDumper\自动倾卸车\HtmlDumper;VarDumper::setHandler (函数(美元var){美元切割=新VarCloner ();美元自动倾卸车=“cli”= = = PHP_SAPI ?新CliDumper ():新HtmlDumper ();美元自动倾卸车- >转储(美元切割- >cloneVar (美元var));});
切割
切割是用来创建一个中间表示任何PHP变量。它的输出是一个数据对象,该对象将封装这种表示方法。
您可以创建一个数据对象:
1 2 3 4 5 6 7
使用ob娱乐下载\组件\VarDumper\切割\VarCloner;美元切割=新VarCloner ();美元数据=美元切割- >cloneVar (美元myvar#);/ /这是一般然后传递给清洁工人/ /查看这个页面的顶部/ / $翻车机- >转储(元数据);
切割也适用限制创建表示时,对应的数据对象可以代表只有一个子集的克隆变量。在调用之前cloneVar ()您可以配置这些限制:
- setMaxItems ()
- 配置项的最大数量将克隆过去的第一个嵌套级别。项数使用广度优先算法,这样低水平项目比深层嵌套的优先项目;
- setMaxString ()
- 配置的最大字符数,将克隆在切割之前太长的字符串;
在这两种情况下,指定1
删除任何限制。
在倾销它之前,您可以进一步限制所产生的数据对象使用以下方法:
- withMaxDepth ()
- 允许限制转储的深度尺寸。
- withMaxItemsPerDepth ()
- 限制了每级深度的项的数量。
- withRefHandles ()
- 允许删除内部对象的处理稀疏的输出(用于测试)。
不同于先前的限制切割,故意删除数据,这些可以改变之前来回倾倒,因为它们不影响内部中间表示。
矿用汽车
翻车机负责输出的字符串表示一个PHP变量,使用数据对象作为输入。目的地的格式化输出随矿用汽车。
此组件提供了一个HtmlDumperHTML输出和一个CliDumper为可选颜色的命令行输出。
例如,如果你想抛弃一些$变量
只做:
1 2 3 4 5 6 7
使用ob娱乐下载\组件\VarDumper\切割\VarCloner;使用ob娱乐下载\组件\VarDumper\自动倾卸车\CliDumper;美元切割=新VarCloner ();美元自动倾卸车=新CliDumper ();美元自动倾卸车- >转储(美元切割- >cloneVar (美元变量));
通过使用构造函数的第一个参数,您可以选择输出流写入转储。默认情况下,CliDumper
写在php: / / stdout
和HtmlDumper
在php: / /输出
。但任何PHP流(资源或URL)是可以接受的。
而不是流的目的地,你也可以通过它可调用的
将多次呼吁每一行由一个垃圾场。这可调用可以配置使用一个赌徒的构造函数的第一个参数,而且使用setOutput ()方法的第二个参数dump ()方法。
例如,要获取转储为字符串变量,你能做什么:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
使用ob娱乐下载\组件\VarDumper\切割\VarCloner;使用ob娱乐下载\组件\VarDumper\自动倾卸车\CliDumper;美元切割=新VarCloner ();美元自动倾卸车=新CliDumper ();美元输出=”;美元自动倾卸车- >转储(美元切割- >cloneVar (美元变量),函数(美元行,美元深度)使用(&美元输出){/ /负面深度意味着“转储的终结”如果(美元深度> =0){/ /添加一个两个空格缩进美元输出=函数。' ',美元深度)。美元行。“\ n”;}});/ /输出现在的美元抛售美元表示的变量
做同样的的另一个选择可能是:
1 2 3 4 5 6 7 8 9 10 11
使用ob娱乐下载\组件\VarDumper\切割\VarCloner;使用ob娱乐下载\组件\VarDumper\自动倾卸车\CliDumper;美元切割=新VarCloner ();美元自动倾卸车=新CliDumper ();美元输出= fopen (“php: / /记忆”,“r + b”);美元自动倾卸车- >转储(美元切割- >cloneVar (美元变量),美元输出);美元输出= stream_get_contents (美元输出,1,0);/ /输出现在的美元抛售美元表示的变量
矿用汽车实现DataDumperInterface接口,指定了转储(元数据)方法。通常他们也实现了DumperInterface,让他们重新实现逻辑需要走过数据对象的内部结构。
脚轮
对象和资源嵌套在一个PHP变量数组中间的“演员”数据表示。你可以调整为每一个对象数组表达/资源通过连接一个施法者到这个过程。组件已经包括许多脚轮为基地的PHP类和其他常见类。
如果你想建立自己的施法者,你可以注册一个之前克隆一个PHP变量。施法者使用切割的构造函数或其注册addCasters ()
方法:
1 2 3 4 5 6 7 8
使用ob娱乐下载\组件\VarDumper\切割\VarCloner;美元myCasters=数组(…);美元切割=新VarCloner (美元myCasters);/ /或美元切割- >addCasters (美元myCasters);
所提供的myCasters美元
参数是一个数组映射一个类,一个接口或一个可调用的资源类型:
1 2 3 4
美元myCasters=数组(“FooClass”= >美元myFooClassCallableCaster,“:酒吧资源”= >美元myBarResourceCallableCaster,);
你可以注意到,资源类型由一个前缀:
防止碰撞与一个类名。
因为一个对象有一个主类和潜在许多父类或接口,许多脚轮可以应用于一个对象。在这种情况下,施法者被称为一个接一个,从施法者绑定到接口,然后父母类和主类。几个施法者也可以注册相同的资源类型/类/接口。他们被称为登记顺序。
脚轮是负责返回对象的属性或资源被克隆数组中。他们是可调用的,接受四个参数:
- 对象或资源被打的,
- PHP的本机后为数组对象
(数组)
操作符, - 一个存根对象代表的主要属性对象(类、类型等),
- 真/假当施法者被称为嵌套结构。
这是一个简单的施法者不做任何:
1 2 3 4 5 6
函数myCaster(美元对象,美元数组,美元存根,美元isNested){/ /……填充/改变数组美元您的需求返回美元数组;}
对于对象,美元的数组
参数是使用PHP的本地预填充(数组)
铸造运营商或的返回值$对象- > __debugInfo ()
如果魔术方法存在。然后,给出了一个施法者的返回值作为数组参数链中的下一个施法者。
当铸件(数组)
运营商,PHP前缀属性与保护\ \ 0 * 0
拥有财产和私有的类。例如,\ 0 foobar \ 0
将所有私人的前缀Foobar类型的对象的属性。脚轮按照本公约,并添加两个前缀:0 ~ \ \ 0
用于虚拟属性和\ 0 + \ 0
动态的(运行时添加属性的类声明)。
请注意
虽然可以,但建议不改变对象的状态,而铸造施法者。
提示
在编写自己的脚轮之前,您应该检查现有的。