Re: Making parse_ini_*() aware of types
| From: | Julien Pauli | Date: | Mon, 01 Sep 2014 11:08:41 +0000 |
| Subject: | Re: Making parse_ini_*() aware of types | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-77003@lists.php.net to get a copy of this message | ||
On Sat, Aug 30, 2014 at 4:36 PM, Tjerk Meesters
<tjerk.meesters@gmail.com> wrote:
> Hi internals,
>
> I was going through the bug list and found this report:
>
> https://bugs.php.net/bug.php?id=38409
>
> It discusses the fact that
parse_ini_file() and
> parse_ini_string() throw away type information; for instance, the
> flag “on” doesn’t translate into a bool(true) but string(“1”).
>
> The report has had 21 votes and an average score of 4.3 +- 0.7, so it seems to have some
> traction with users.
>
>
> Simply changing this behaviour would cause BC, so I’ve found a way in which this can be
> solved with a separate scanner mode; e.g.:
>
> $data = parse_ini_file(‘/path/to/file’, true, INI_SCANNER_TYPED);
>
> A patch for the lexer can be found here, together with a simple test case:
>
>
> https://github.com/datibbaw/php-src/compare/php:master...datibbaw:ini-scanner-plus
>
> It currently distinguishes between booleans, numbers and NULL (it was mentioned in the ticket
> by someone else, not entirely sure of its usefulness, though). I haven’t benchmarked it, but the
> impact on performance should be quite minimal.
>
> Thoughts?
+1 for me, this seems obvious.
Julien