Symfonyob娱乐下载 4.2新增功能:VarExporter组件
2018年9月27日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
提供的
尼古拉斯Grekas
在# 28231.
在Syob娱乐下载mfony应用程序中,VarDumper组件提供了一个dump ()
函数作为PHP的更好的替代品var_dump ()
函数。在Syob娱乐下载mfony 4.2中,我们引入了一个新的VarExporter
组件提供了一个更好的PHP的替代品var_export ()
函数。
的var_export ()
函数输出或返回变量的可解析字符串表示形式。它类似于var_dump ()
只有一个例外:返回的表示是有效的PHP代码。ob娱乐下载Symfony的export ()
函数是类似的,但添加了许多有用的特性。
考虑下面的例子,其中导出了一个简单的数组:
1 2
$数据=数组(123,数组(“abc”));$结果= VarExporter::出口($数据);
输出与您在使用时所期望的类似var_export ()
,虽然export ()
生成有效的和PSR-2兼容的PHP代码:
1 2 3 4 5 6 7 8
<?php返回[123, (“abc”,],];
主要的区别在于export ()
,不像var_export ()
保留所有与PHP的序列化机制相关的语义(__wakeup
,__sleep
,可序列化的
).考虑这个类实现的例子可序列化的
:
12 3 4 5 6 7 8 9 10 11 12 13 14 15
类MySerializable实现了\可序列化的{公共函数序列化(){返回“123”;}公共函数非系列化($数据){//不做任何事}}$数据=数组(新MySerializable (),新MySerializable ());$结果= VarExporter::出口($数据);
结果如下所示:
12 3 4 5 6 7 8 9 10 11 12 13 14
<?php返回\ob娱乐下载 VarExporter \内部\ \ Symfony \组件配置器::pop (\ob娱乐下载 Symfony \内部组件\ VarExporter \ \注册表::Push ([], [], [“C: 50:ob娱乐下载“Symfony组件\ \ \ \ \ \ VarExporter \ \测试MySerializable”:3:{123}”]),零, [], [\Sob娱乐下载ymfony\Component\VarExporter\内部\注册表。:: $对象(0),内部ob娱乐下载组件\ VarExporter \ \ Symfony \ \注册表:: $对象(0],], []);
除了产生更好的结果,如果您的应用程序使用OPcache, Symfony的ob娱乐下载export ()
函数是更快,内存效率更高比serialize ()
甚至igbinary.
最后,Symfonob娱乐下载y的export ()
功能包括其他改进var_export ()
而且serialize ()
:
- 生成的输出可以重新缩进而不会搞砸
r \
或\ n
在数据上; - 缺少类会抛出
ReflectionException
而不是被反序列化PHP_Incomplete_Class
对象; -
-
引用涉及
SplObjectStorage
,ArrayObject
或ArrayIterator
- 实例被保存;
-
引用涉及
-
-
反射*
,IteratorIterator
而且RecursiveIteratorIterator
类 - 序列化时抛出异常。
-
发表在#生活在边缘
评论
Ulumuddin Cahyadi Yunus
2018年9月28日说在00:46
太棒了!
Tsiry Hajaina
2018年9月28日说11
酷(y)
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
Fabien Papet is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now