wiki/content/20201111103442-symfony_varexporter_component.md

1.4 KiB

date id title
2020-11-11 a334a0bb-a462-4e8f-94df-6a9985a2c5e3 Symfony VarExporter Component

Introduction

Introduced in Symfony 4.2, the VarExporter Component is a better alternative to PHP's var_export() function. The var_export() function outputs or returns a parsable string representation of a variable. It is similar to var_dump() with one exception: the returned representation is valid PHP code. Symfony's export() function is similar, but adds lots of useful features to it.

Syntax

Array

$data = array(123, array('abc'));
$result = VarExporter::export($data);

generates

<?php

return [
    123,
    [
        'abc',
    ],
];

Class

class MySerializable implements \Serializable
{
    public function serialize()
    {
        return '123';
    }

    public function unserialize($data)
    {
        // do nothing
    }
}

$data = array(new MySerializable(), new MySerializable());
$result = VarExporter::export($data);

generates

<?php

return \Symfony\Component\VarExporter\Internal\Configurator::pop(
    \Symfony\Component\VarExporter\Internal\Registry::push([], [], [
        'C:50:"Symfony\\Component\\VarExporter\\Tests\\MySerializable":3:{123}',
    ]),
    null,
    [],
    [
        \Symfony\Component\VarExporter\Internal\Registry::$objects[0],
        \Symfony\Component\VarExporter\Internal\Registry::$objects[0],
    ],
    []
);