霜冻 / var-exporter
此包已被弃用且不再维护。没有建议的替代包。
霜冻 VarExporter 组件。
dev-master
2022-07-13 19:49 UTC
Requires
- php: ^8.1
Requires (Dev)
- laminas/laminas-coding-standard: ^2.3
- phpstan/phpstan: ^1.2
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2023-11-13 22:40:12 UTC
README
VarExporter 组件提供了一个简单的 PHP 的 var_export()
的替代方案。
要求
- 此库需要 PHP 8.1 或更高版本。
安装
此库可以通过 composer 安装。
$ composer require frostaly/var-exporter
快速入门
VarExporter 的使用方式与 var_export()
相同。它接受任何值并返回该值的 PHP 代码表示。
echo Frostaly\VarExporter\VarExporter::export(['foo' => 'bar', 'baz' => [1.0, true, null]]);
[ 'foo' => 'bar', 'baz' => [ 1.0, true, null, ] ]
导出对象
VarExporter 使用已注册的编码器确定导出对象的最佳方法。
StdClassEncoder
它将 stdClass 导出为对象转换的数组。
(object) [ 'foo' => 'Hello' 'bar' => 'World', ]
SetStateEncoder
它使用与 var_export
相同的 __set_state()
方法。
Namespace\CustomClass::__set_state([ 'foo' => 'Hello' 'bar' => 'World', ])
SerializeEncoder
它使用 __serialize()
和 __unserialize()
方法以及 Frostaly\VarExporter\Instantiator
类。
Frostaly\VarExporter\Instantiator::unserialize(Namespace\CustomClass::class, [ 'foo' => 'Hello', 'bar' => 'World', ]);
ObjectEncoder
它可以编码任何自定义对象,使用构造函数和命名参数,或者使用 Frostaly\VarExporter\Instantiator
类。
new Namespace\CustomClass( foo: 'Hello', bar: 'World', )
Frostaly\VarExporter\Instantiator::construct(Namespace\CustomClass::class, [ 'foo' => 'Hello', 'bar' => 'World', ]);
贡献
任何人都可以为此存储库做出贡献。请在发现意外情况时提交问题,或者发送改进的拉取请求。