Source of file State.php
Size: 7,094 Bytes - Last Modified: 2018-02-09T21:14:20+00:00
src/State.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
Covered by 3 test(s):
133
Covered by 3 test(s):
134135136137138139140141
Covered by 147 test(s):
142143144145146147148149150
Covered by 75 test(s):
151
Covered by 75 test(s):
152153154155156157158159
Covered by 147 test(s):
160161162163164165166167168
Covered by 147 test(s):
169
Covered by 147 test(s):
170171172173174175176177
Covered by 12 test(s):
178179180181182183184185186
Covered by 24 test(s):
187
Covered by 24 test(s):
188189190191192193194195
Covered by 180 test(s):
196197198199200201202203204
Covered by 12 test(s):
205
Covered by 12 test(s):
206207208209210211212213
Covered by 180 test(s):
214215216217218219220221222
Covered by 12 test(s):
223
Covered by 12 test(s):
224225226227228229230231
Covered by 180 test(s):
232233234235236237238239240
Covered by 24 test(s):
241
Covered by 24 test(s):
242243244245246247248249250
Covered by 24 test(s):
251
Covered by 24 test(s):
252253254255256257258259
Covered by 12 test(s):
260261262263264265266267268269
Covered by 12 test(s):
270
Covered by 12 test(s):
271272273274275276277278
Covered by 12 test(s):
279280281282283284285286287
Covered by 3 test(s):
288
Covered by 3 test(s):
289290291292293294295296297
Covered by 12 test(s):
298
Covered by 12 test(s):
299300301302303304305306
Covered by 171 test(s):
307308309310311312313314315
Covered by 24 test(s):
316
Covered by 24 test(s):
317318319320321322323324
Covered by 171 test(s):
325326327328329330331332333
Covered by 108 test(s):
334335
Covered by 12 test(s):
336337
Covered by 12 test(s):
338339340
Covered by 12 test(s):
341342343
Covered by 105 test(s):
344
Covered by 105 test(s):
345346347348349350351352
Covered by 180 test(s):
353354355356357358359360361
Covered by 57 test(s):
362
Covered by 57 test(s):
363364365366367368369370
Covered by 57 test(s):
371372373374375376377378379
Covered by 57 test(s):
380
Covered by 57 test(s):
381382383384385386387388
Covered by 180 test(s):
389390391392393394395396397398399400401
Covered by 111 test(s):
402
Covered by 111 test(s):
403
Covered by 111 test(s):
404
Covered by 111 test(s):
405406
Covered by 111 test(s):
407408409410411412413414
Covered by 180 test(s):
415416417418419420421422423
Covered by 6 test(s):
424
Covered by 6 test(s):
425426427
| <?php declare(strict_types=1); /** * Query * * SQL Query Builder / Database Abstraction Layer * * PHP version 7.1 * * @package Query * @author Timothy J. Warren <tim@timshomepage.net> * @copyright 2012 - 2018 Timothy J. Warren * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link https://git.timshomepage.net/aviat4ion/Query */ namespace Query; /** * Query builder state */ class State { // -------------------------------------------------------------------------- // ! SQL Clause Strings // -------------------------------------------------------------------------- /** * Compiled 'select' clause * @var string */ protected $selectString = ''; /** * Compiled 'from' clause * @var string */ protected $fromString = ''; /** * Compiled arguments for insert / update * @var string */ protected $setString = ''; /** * Order by clause * @var string */ protected $orderString = ''; /** * Group by clause * @var string */ protected $groupString = ''; // -------------------------------------------------------------------------- // ! SQL Clause Arrays // -------------------------------------------------------------------------- /** * Keys for insert/update statement * @var array */ protected $setArrayKeys = []; /** * Key/val pairs for order by clause * @var array */ protected $orderArray = []; /** * Key/val pairs for group by clause * @var array */ protected $groupArray = []; // -------------------------------------------------------------------------- // ! Other Class vars // -------------------------------------------------------------------------- /** * Values to apply to prepared statements * @var array */ protected $values = []; /** * Values to apply to where clauses in prepared statements * @var array */ protected $whereValues = []; /** * Value for limit string * @var integer */ protected $limit; /** * Value for offset in limit string * @var string|false */ protected $offset = FALSE; /** * Query component order mapping * for complex select queries * * Format: * [ * 'type' => 'where', * 'conjunction' => ' AND ', * 'string' => 'k=?' * ] * * @var array */ protected $queryMap = []; /** * Map for having clause * @var array */ protected $havingMap = []; /** * @param string $str * @return State */ public function setSelectString(string $str): self { $this->selectString = $str; return $this; } /** * @return string */ public function getSelectString(): string { return $this->selectString; } /** * @param string $str * @return State */ public function appendSelectString(string $str): self { $this->selectString .= $str; return $this; } /** * @return string */ public function getFromString(): string { return $this->fromString; } /** * @param string $fromString * @return State */ public function setFromString(string $fromString): self { $this->fromString = $fromString; return $this; } /** * @return string */ public function getSetString(): string { return $this->setString; } /** * @param string $setString * @return State */ public function setSetString(string $setString): self { $this->setString = $setString; return $this; } /** * @return string */ public function getOrderString(): string { return $this->orderString; } /** * @param string $orderString * @return State */ public function setOrderString(string $orderString): self { $this->orderString = $orderString; return $this; } /** * @return string */ public function getGroupString(): string { return $this->groupString; } /** * @param string $groupString * @return State */ public function setGroupString(string $groupString): self { $this->groupString = $groupString; return $this; } /** * @return array */ public function getSetArrayKeys(): array { return $this->setArrayKeys; } /** * @param array $setArrayKeys * @return State */ public function appendSetArrayKeys(array $setArrayKeys): self { $this->setArrayKeys = array_merge($this->setArrayKeys, $setArrayKeys); return $this; } /** * @param array $setArrayKeys * @return State */ public function setSetArrayKeys(array $setArrayKeys): self { $this->setArrayKeys = $setArrayKeys; return $this; } /** * @return array */ public function getOrderArray(): array { return $this->orderArray; } /** * @param string $key * @param mixed $orderArray * @return State */ public function setOrderArray(string $key, $orderArray): self { $this->orderArray[$key] = $orderArray; return $this; } /** * @return array */ public function getGroupArray(): array { return $this->groupArray; } /** * @param array $groupArray * @return State */ public function setGroupArray(array $groupArray): self { $this->groupArray = $groupArray; return $this; } /** * @param string $groupArray * @return State */ public function appendGroupArray(string $groupArray): self { $this->groupArray[] = $groupArray; return $this; } /** * @return array */ public function getValues(): array { return $this->values; } /** * @param array $values * @return State */ public function appendValues(array $values): self { $this->values = array_merge($this->values, $values); return $this; } /** * @return array */ public function getWhereValues(): array { return $this->whereValues; } /** * @param mixed $val * @return State */ public function appendWhereValues($val): self { if (\is_array($val)) { foreach($val as $v) { $this->whereValues[] = $v; } return $this; } $this->whereValues[] = $val; return $this; } /** * @return int */ public function getLimit(): ?int { return $this->limit; } /** * @param int $limit * @return State */ public function setLimit(int $limit): self { $this->limit = $limit; return $this; } /** * @return string|false */ public function getOffset() { return $this->offset; } /** * @param string|false $offset * @return State */ public function setOffset($offset): self { $this->offset = $offset; return $this; } /** * @return array */ public function getQueryMap(): array { return $this->queryMap; } /** * Add an additional set of mapping pairs to a internal map * * @param string $conjunction * @param string $string * @param string $type * @return State */ public function appendMap(string $conjunction = '', string $string = '', string $type = ''): self { $this->queryMap[] = [ 'type' => $type, 'conjunction' => $conjunction, 'string' => $string ]; return $this; } /** * @return array */ public function getHavingMap(): array { return $this->havingMap; } /** * @param array $item * @return State */ public function appendHavingMap(array $item): self { $this->havingMap[] = $item; return $this; } } |