first version

This commit is contained in:
Bastian Allgeier
2019-01-13 23:17:34 +01:00
commit 01277f79f2
595 changed files with 82913 additions and 0 deletions

52
kirby/src/Http/Query.php Executable file
View File

@@ -0,0 +1,52 @@
<?php
namespace Kirby\Http;
use Kirby\Toolkit\Obj;
/**
* A wrapper around a URL query string
* that converts it into a Kirby Obj for easier
* access of each query attribute.
*/
class Query extends Obj
{
public function __construct($query)
{
if (is_string($query) === true) {
parse_str(ltrim($query, '?'), $query);
}
parent::__construct($query ?? []);
}
public function isEmpty(): bool
{
return empty((array)$this) === true;
}
public function isNotEmpty(): bool
{
return empty((array)$this) === false;
}
public function __toString(): string
{
return $this->toString();
}
public function toString($questionMark = false): string
{
$query = http_build_query($this);
if (empty($query) === true) {
return '';
}
if ($questionMark === true) {
$query = '?' . $query;
}
return $query;
}
}