Re: [RFC][DISCUSSION] Change var_export() array syntax touse short hand arrays
| From: | Sherif Ramadan | Date: | Wed, 08 Apr 2020 13:12:09 +0000 |
| Subject: | Re: [RFC][DISCUSSION] Change var_export() array syntax touse short hand arrays | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-109564@lists.php.net to get a copy of this message | ||
So to recap on what's been discussed so far, because I plan to bring this
to a vote next week...
I am updating the RFC to reflect that the change will no longer break
backwards compatibility. I will be adding an flags argument with the
following 3 optional bitwise flags for var_export:
- VAR_EXPORT_SHORT_ARRAY [Triggers short-array syntax]
- VAR_EXPORT_NO_INDEX [Discards numbered indexes in arrays (only if they
are sequential from 0)]
- VAR_EXPORT_NO_WHITESPACE [For one-liners]
This complicates the implementation slightly, but I think it brings a
greater net-benefit.
On Fri, Apr 3, 2020 at 5:19 PM Sherif Ramadan <theanomaly.is@gmail.com>
wrote:
>
>
> On Fri, Apr 3, 2020 at 5:16 PM Andrea Faulds <ajf@ajf.me> wrote:
>
>> Hey Sara,
>>
>> Sara Golemon wrote:
>> > On Mon, Mar 30, 2020 at 12:38 PM Chase Peeler <chasepeeler@gmail.com>
>> wrote:
>> >
>> >> Just out of curiosity, is there any reason we couldn't add an optional
>> >> parameter called "$short_array" or whatever that defaults to false?
>> Then
>> >> there shouldn't be any backwards compatibility issues.
>> >>
>> >> None at all, though I'd make it an
int $options =
>> >> 0 similar to
>> > json_encode(). I'd have a FAR easier time supporting that than a
>> wholesale
>> > BC break for the sake of breaking BC.
>> >
>> > I can think of a few options:
>> > VAR_EXPORT_SHORT_ARRAY => use [] instead of arrray()
>> > VAR_EXPORT_NO_WHITESPACE => Keep it concise, single line
>> > VAR_EXPORT_NO_VECTOR_INDEX => If an array is vector-like, skip
>> indexes
>> > VAR_EXPORT_UTF8_UESCAPE => Detect places where we can use \u{1234}
>> syntax
>> > for UTF8 strings
>> >
>> > Though I'm going to stay with my stated position that I would MUCH
>> rather
>> > this stuff live in userspace. Just because PHP's penchant for
>> > including the kitchen sink is broken already doesn't mean we should
>> break
>> > it more.
>>
>>
> +1 for me
>
>
>> As you say, including the kitchen sink might be excessive, but I think
>> adding a $flags option isn't a bad idea — it's low-maintenance, simple
>> to implement and, in my opinion, would be frequently used. We can have
>> the best of both worlds: consistent default behaviour, and nicer output
>> for those who want it. I can see myself using VAR_EXPORT_SHORT_ARRAY and
>> VAR_EXPORT_NO_VECTOR_INDEX (not with that name…) :)
>>
>
> *Fingers crossed*
>
>
>> (Also, if we make the output of var_export() more palatable, will people
>> use it instead of print_r() for development purposes? I can dream…)
>>
>> Thanks,
>> Andrea
>>
>> --
>> PHP Internals - PHP Runtime Development Mailing List
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>