technically-php/rack-utils-http-query

Tiny package to build HTTP URL query string compatible with Rails apps

1.0 2016-11-01 20:34 UTC

This package is not auto-updated.

Last update: 2024-04-18 03:58:34 UTC


README

Tiny package to build HTTP URL query string compatible with Rails app.

Usage

This library produces output without explicit indices. As simple as that.

$vars = ['fruits' => ['apple', 'banana', 'orange']];
$query_string = \TechnicallyPhp\RackUtilsHttpQuery::build($vars);
var_dump($query_string); 
// will output: "fruits[]=apple&fruits[]=banana&fruits[]=orange"

Motivation

PHP stock http_build_query() converts array into items with indices explicitly defined. This is not compatible with the way Rails applications parse requests.

$vars = ['fruits' => ['apple', 'banana', 'orange']];
$query_string = http_build_query($vars);
var_dump($query_string); 
// will output: "fruits[0]=apple&fruits[1]=banana&fruits[2]=orange"

Relevant StackOverflow discussions:

  1. php url query nested array with no index

Details

This package follows Rack::Utils.parse_nested_query specification. Please check RackUtilsHttpQueryTest.php.