A lightweight, object-oriented, Query String manipulation library.
Because I needed an intuitive way to add or remove parameters from a query string, in any project.
Oh, and, I also wanted that ['foos' => ['foo', 'bar']]
resolved to foos[]=foo&foos[]=bar
instead of foos[0]=foo&foos[1]=bar
, unlike many libraries do.
Thanks to object-oriented design, you can define the way query strings are parsed and rendered.
Simple as that:
require_once __DIR__ . '/vendor/autoload.php';
use function BenTools\QueryString\query_string;
$qs = query_string(
'foo=bar&baz=bat'
);
$qs = $qs->withParam('foo', 'foofoo')
->withoutParam('baz')
->withParam('ho', 'hi');
print_r($qs->getParams());
/* Array
(
[foo] => foofoo
[ho] => hi
) */
print $qs; // foo=foofoo&ho=hi
PHP 7.1+ is required.
composer require bentools/querystring:^1.0
./vendor/bin/phpunit
MIT
bentools/uri-factory - A PSR-7 UriInterface
factory based on your own dependencies.
bentools/pager - A simple, object oriented Pager.
bentools/where - A framework-agnostic fluent, immutable, SQL query builder.
bentools/picker - Pick a random item from an array, with weight management.
bentools/psr7-request-matcher - A PSR-7 request matcher interface.
bentools/cartesian-product - Generate all possible combinations from a multidimensionnal array.
bentools/string-combinations - A string combinations generator.
bentools/flatten-iterator - An iterator that flattens multiple iterators or arrays.