> On Jun 28, 2024, at 15:09, Máté Kocsis <[email protected]> wrote:
>
>
> Hi Everyone,
>
> I've been working on a new RFC for a while now, and time has come to present it to a wider
> audience.
>
> Last year, I learnt that PHP doesn't have built-in support for parsing URLs according to
> any well established standards (RFC 1738 or the WHATWG URL living standard), since the parse_url()
> function is optimized for performance instead of correctness.
>
> In order to improve compatibility with external tools consuming URLs (like browsers), my new
> RFC would add a WHATWG compliant URL parser functionality to the standard library. The API itself is
> not final by any means, the RFC only represents how I imagined it first.
>
> You can find the RFC at the following link: https://wiki.php.net/rfc/url_parsing_api
>
> Regards,
> Máté
The RFC states:
<snip>
The Url\Url class is intentionally compatible with the PSR-7 UriInterface.
</snip>
It mirrors the interface, but it can’t be swapped out for a UriInterface instance, especially
since it can’t be extended, so I wouldn’t consider it compatible. I would still need to write a
compatibility layer that composes Url\Url and implements UriInterface.
<snip>
This makes it possible for a next iteration of the PSR-7 standard to use Url\Url directly instead of
requiring implementations to provide their own Psr\Http\Message\UriInterface implementation.
</snip>
Since PSRs are concerned with shared interfaces and this class is final and does not implement any
interfaces, I’m not sure how you envision “a next iteration” of PSR-7 to use this directly,
unless what you mean is that UriInterface would be deprecated and applications would type directly
against Url\Url.
Cheers,
Ben