Skip to content

PHP 7.1+ Query String manipulation library. No dependency, immutable, lightweight, PSR-7 compliant.

License

Notifications You must be signed in to change notification settings

bpolaszek/querystring

Repository files navigation

Latest Stable Version License CI Workflow Coverage Quality Score Total Downloads

QueryString

A lightweight, object-oriented, Query String manipulation library.

Why?

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.

Usage

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

Documentation

Instantiation / Parsing

Manipulate parameters

Render as string

Installation

PHP 7.1+ is required.

composer require bentools/querystring:^1.0

Tests

./vendor/bin/phpunit

License

MIT

See also

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.

About

PHP 7.1+ Query String manipulation library. No dependency, immutable, lightweight, PSR-7 compliant.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages