use League\Uri\Components\Query;
use League\Uri\Uri;
use League\Uri\UriModifier;
$uri = Uri::createFromString('http://example.com?q=value#fragment');
$uri->getScheme(); // returns 'http'
$uri->getHost(); // returns 'example.com'
$newUri = UriModifier::appendQuery($uri, 'q=new.Value');
echo $newUri; // 'http://example.com?q=value&q=new.Value#fragment'
$query = Query::createFromUri($newUri);
$query->get('q'); // returns 'value'
$query->getAll('q'); // returns ['value', 'new.Value']
$query->params('q'); // returns 'new.Value'
The libraries manipulate URIs and their components using a simple yet expressive code.