RFC 3986 compliant URI value object.
You can install the latest stable version with:
composer require castor/uri
<?php
use Castor\Net\Uri;
$uri = Uri::parse('https://example.com/hello?foo=bar');
echo $uri->getScheme(); // Prints: https
echo $uri->getHost(); // Prints: example.com
echo $uri->getPath(); // Prints: /hello
echo $uri->getRawQuery(); // Prints: foo=bar
echo $uri->getQuery()->add('foo', 'foo')->encode(); // Prints: foo=bar&foo=foo
To learn about the rationale behind this library, best practices when using it and implementation examples, check the documentation.