Hi Maté and all,
A one-off comment about the exceptions:
The RFC posits that _Uri\UriException_ extends _Exception_, and _Uri\InvalidUriException_ extends
_UriException_.
However, pre-existing userland solutions to the URI problem lean more heavily on the native PHP
_InvalidArgumentException_, which extends _LogicException_. (Cf. <https://github.com/uri-interop/interface/blob/1.x/README-RESEARCH.md#exceptions>.)
(_LogicException_ "represents an error in the program logic. This kind of exception should lead
directly to a fix in your code.")
As such, the _InvalidUriException_ would better extend from _LogicException_.
What then to do with _UriException_ ? It's a base, it never gets thrown anywhere. If a base is
actually necessary, perhaps it should be renamed _UriLogicException) and extend _LogicException_;
then _InvalidUriException_ can extend from that base. This leaves room for a _UriRuntimeException_
base, should one ever be needed.
-- pmj