bentools/querystring

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

1.0.2 2019-02-08 14:37 UTC

README

Latest Stable Version License Build Status Coverage Status Quality Score Total Downloads

QueryString

A PSR-7 compliant query string manipulator, with no dependency. Not even PSR-7, actually.

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.

This behavior is not the default one of that library, but there's an easy way to change it.

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

Instanciation

Manipulate parameters

Render as string

Installation

PHP 7.1+ is required.

composer require bentools/querystring 1.0.x-dev

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.