On Wed, Apr 22, 2020 at 7:38 PM tyson andre <tysonandre...@hotmail.com>
wrote:

> Hi internals,
>
> Currently, it's possible to disable the json extension with `./configure
> --disable-json`.
> However, JSON is widely used in many use cases - web sites, logging
> output, and as a data format that can be used in CLI programs
> to share data with many applications and programming languages, so I'd
> personally find it useful if it was always enabled.
> (e.g. to publish self-contained scripts that don't require polyfills or
> less readable var_export output)
>
> https://wiki.php.net/rfc/jsond mentions that
>
> > The current Json Parser in the json extension does not have a free
> license which is a problem for many Linux distros.
> > This has been referenced at Bug #63520. That results in not packaging
> json extension in the many Linux distributions.
>
> Starting in php 7.0, I'd assume licensing is no longer an issue (correct
> me if I'm wrong). I don't see anything discussed in the RFC or a quick
> search of email threads about making JSON impossible to disable.
>
> Doing this would also make some extensions more convenient to use (e.g.
> memcached with the json serializer, using json encoding for uses such as
> error messages in miscellaneous extensions, etc.)
>

Another advantage would be that the JsonSerializable interface would be
always available. This would make things simpler for extensions that want
to hook into that. Currently we have a bunch of classes like DateTime,
which do have custom JSON serialization behavior, but do not implement
JsonSerializable, because the class is not always available.

So tentatively, I'm +1 on making ext/json a required extension.


> P.S. What are your thoughts about adding additional conversion specifiers
> such as %j or %v to PHP to call JSON with the default options.
> It's a feature similar to those I've seen in programming languages such as
> golang - https://golang.org/pkg/fmt/#hdr-Printing
>
> - `printf("console.log("value from php", %j);\n", $value)`
> - `printf("Some command returned %j\n", $boolValue)`
>

Uh, dunno. Is it really common to want JSON inside printf? I see printf
mostly as something used to output to console, not so much in a web / data
interchange context.

Regards,
Nikita

Reply via email to