Hi Ignace,

>  > All URI components - with the exception of the host - can be
> retrieved in two formats:
>
> I believe you mean - with the excepotion of the Port
>
>
Even though I specifically meant WHATWG's host that is only available in
only
one format, you are right, the port is never available in two formats. So
I've
changed the wording accordingly.


> 0 - It is a unfortunate that there's no IDNA support for RFC3986, I
> understand the reasoning behind that decision but I was wondering if it
> was possible to optin its use when the ext-intl extension is present ?
>

Good question, I think it's probably not the main concern. My specific
concern is that
RFC 3987 has around same length as RFC 3986, in a lot of cases it uses the
exact
wording of the initial RFC but changes URI to IRI, and of course adds the
IDNA specific parts. Maybe it's just me, but it's not easy to find it out
exactly what
has to be implemented above RFC 3986, and also, how it can be best achieved?
By extending the class for RFC 3986? Creating a totally separate class that
can
transform itself to an RFC 3986 URI? These and quite some other questions
have
to be answered first, which I would like to postpone.


>
> 1 - Does it means that if/when Rfc3986/Uri get Rfc3987 supports they
> will also get a `Uri::toDisplayString` and `Uri::getHostForDisplay`
> maybe this should be stated in the Futurscope ?
>

It's a question that I also asked from myself. For now, I'd say that
Rfc3986/Uri shouldn't have these methods, since it doesn't support any such
capabilities. But Rfc3986\Iri should likely have these toString methods.


> 4 - For consistency I would use toRawString and toString just like it is
> done for components.
>

I'm fine with this, I also think doing so would reasonably continue the
convention
getters do.


>
> 5 - Can the returned array from __debugInfo be used in a "normal" method
> like `toComponents` naming can be changed/improve to ease migration from
> parse_url or is this left for userland library ?
>

I intend to add the __debugInfo() method purely to help debugging. Without
this
method, even I had a hard time when trying to compare the expected vs actual
URIs in my tests.

But more importantly, sometimes the recomposed string is not enough to have
a
good understanding exactly what value each component has. For example
one can naively assume that the "mailto:kocsism...@php.net"; URI has a
user(info) component of "kocsismate" and a hostname of "php.net" (I probably
also did so before reading the RFCs). The representation provided by
__debugInfo() can quickly highlight that "kocsism...@php.net" is the path
in fact.
One could try to call the individual getters to find the needed component,
but having
such a method like __debugInfo() provides a much more clear picture about
the anatomy of
the URI.

But otherwise I don't know how useful this method would be. Is there anything
else
besides helping the migration?

Regards,
Máté

Reply via email to