霜冻/var-exporter

此包已被弃用且不再维护。没有建议的替代包。

霜冻 VarExporter 组件。

dev-master 2022-07-13 19:49 UTC

This package is auto-updated.

Last update: 2023-11-13 22:40:12 UTC


README

VarExporter 组件提供了一个简单的 PHP 的 var_export() 的替代方案。

Source Code CI Status Code Quality Code Coverage Software License

要求

  • 此库需要 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',
]);

贡献

任何人都可以为此存储库做出贡献。请在发现意外情况时提交问题,或者发送改进的拉取请求。