On Thu, Mar 2, 2023, at 1:31 PM, Jakub Zelenka wrote:
> On Thu, Mar 2, 2023 at 5:53 PM Rowan Tommins <rowan.coll...@gmail.com>
> wrote:
>
>> On Thu, 2 Mar 2023 at 12:34, Jakub Zelenka <bu...@php.net> wrote:
>>
>> > It's possible that we might decide to stop supporting some drafts if the
>> > maintenance burden is too big and usage small but I wouldn't see that as
>> > something that happens often. But essentially you are right that there
>> will
>> > be minimum (draft-04 initially) and maximum (latest implemented draft).
>> >
>>
>>
>> Thinking about this, particularly if there is the ability to install a PECL
>> extension which supports different versions from the core PHP version,
>> perhaps it would be useful to expose a function or constant that lists the
>> supported versions, so that code needing a particular version could check
>> for support directly, rather than having to attempt and catch an exception?
>>
>>
> That's a good point. I think a constant should be sufficient. I think the
> different classes make less sense if $schema is specified as I would think
> that the $schema should have a priority. So having just default argument
> using the constant for the cases where it's not specified should be
> sufficient IMHO.
>
> Cheers
>
> Jakub

You mean using the version from the JSON string, and allowing an override?  
Like this?

new JsonSchema($schema_string, version: JsonSchema::DRAFT_4);

I see two issues there.

1. If I want to see if DRAFT_6 is available, I have to use defined()[1] with 
strings.  This is fugly.

2. I don't know how to polyfill newer spec versions if I don't want to wait for 
internals to get around to adding a new version.

--Larry Garfield

[1] https://www.php.net/manual/en/function.defined

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to