for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace BenTools\QueryString\Renderer;
use BenTools\QueryString\QueryString;
final class NativeRenderer implements QueryStringRendererInterface
{
/**
* @var int
*/
private $encoding;
protected function __construct(int $encoding)
$this->encoding = $encoding;
}
* @return NativeRenderer
public static function rfc1738(): self
return new self(PHP_QUERY_RFC1738);
public static function rfc3986(): self
return new self(PHP_QUERY_RFC3986);
* @param int $encoding
public function withEncoding(int $encoding): self
if (!in_array($encoding, [PHP_QUERY_RFC1738, PHP_QUERY_RFC3986])) {
throw new \InvalidArgumentException("Invalid encoding.");
return new self($encoding);
* @inheritDoc
public function render(QueryString $queryString): string
return http_build_query(
$queryString->getParams(),
null,
$queryString->getSeparator() ?? ini_get('arg_separator.output'),
$this->encoding
);