Re: [RFC] var_representation() : readable alternative to var_export()

From: Date: Mon, 25 Jan 2021 14:32:32 +0000
Subject: Re: [RFC] var_representation() : readable alternative to var_export()
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-112983@lists.php.net to get a copy of this message
Hi Dusk,

> There's an interesting edge case where this does become useful. If an evaluable
> representation of a data structure is written to a file (wrapped with <?php return
> $x;) and subsequently loaded using require(), the file can be stored in opcache.
> This is dramatically faster than unserialize() or json_decode(), especially for large structures.
> 
> What'd be particularly useful for this use case would be a function which behaved
> similarly to var_export(), but which didn't pretty-print its output, so as to
> yield a smaller file.

The larger benefit is readability and that you could reindent the output or change the line endings
in the output (automatically or manually through your IDE) without worrying about accidentally
changing the representation.

```
// or other classes
    const SER = array (
  0 => 'O:8:"stdClass":1:{s:7:"headers";s:20:"Content-Length: 10
";}',
);
```

The size on disk would be smaller and I expect the encoding and saving a file to disk could be a
tiny bit faster,
but the size in opcache would be unchanged because the resulting array is the same.
For the question of size, you'd still benefit in cases where representation size (e.g.
megabytes of large/nested configuration or generated data) is a concern
and may or may not get a small speedup when loading the file for the first time after clearing
opcache (e.g. server restart).
(haven't benchmarked it)

Cheers,
- Tyson


Thread (17 messages)

« previous php.internals (#112983) next »