Selection
class Selection implements Iterator, IRowContainer, ArrayAccess, Countable
Represents filtered table result.
Selection is based on the great library NotORM http://www.notorm.com written by Jakub Vrana.
Properties
| protected | $explorer | ||
| protected | $context | back compatibility |
|
| protected | $conventions | ||
| protected | $cache | ||
| protected | $sqlBuilder | ||
| protected | $name | table name |
|
| protected string|string[]|null | $primary | ||
| protected | $primarySequence | primary column sequence name, false for autodetection |
|
| protected T[]|null | $rows | ||
| protected T[]|null | $data | ||
| protected | $dataRefreshed | ||
| protected | $globalRefCache | cache array of Selection and GroupedSelection prototypes |
|
| protected | $refCache | ||
| protected | $generalCacheKey | ||
| protected | $specificCacheKey | ||
| protected | $aggregation | of [conditions => [key => ActiveRow]]; used by GroupedSelection |
|
| protected | $accessedColumns | ||
| protected | $previousAccessedColumns | ||
| protected | $observeCache | should instance observe accessed columns caching |
|
| protected | $keys | of primary key values |
Methods
Creates filtered table representation.
No description
No description
No description
Returns table primary key.
No description
No description
No description
Loads cache of previous accessed columns and returns it.
No description
Returns row specified by primary key.
Returns the next row or null if there are no more rows.
Returns all rows as associative array, where first argument specifies key column and second value column.
Returns all rows.
No description
Adds condition, more calls appends with AND.
Executes aggregation function.
Counts number of rows. If column is not provided returns count of result rows, otherwise runs new sql counting query.
Returns minimum value from a column.
Returns maximum value from a column.
Returns sum of values in a column.
No description
No description
No description
Returns Selection parent for caching.
Loads refCache references
Returns general cache key independent on query parameters or sql limit Used e.g. for previously accessed columns caching
Returns object specific cache key dependent on query parameters Used e.g. for reference memory caching
No description
No description
Returns if selection requeried for more columns.
Inserts row in a table. Returns ActiveRow or number of affected rows for Selection or table without primary key.
Updates all rows in result set.
Deletes all rows in result set.
Returns referenced row.
Returns referencing rows.
No description
No description
No description
No description
No description
Returns specified row.
Tests if row exists.
Removes row from result set.
Details
at line 74
__construct(Explorer $explorer, Conventions $conventions, string $tableName, Storage|null $cacheStorage = null)
Creates filtered table representation.
at line 93
__destruct()
No description
at line 99
__clone()
No description
at line 105
string
getName()
No description
at line 115
string|array|null
getPrimary(bool $throw = true)
Returns table primary key.
at line 125
string|null
getPrimarySequence()
No description
at line 136
Selection
setPrimarySequence(string $sequence)
No description
at line 143
string
getSql()
No description
at line 153
array|bool
getPreviousAccessedColumns()
| internal |
Loads cache of previous accessed columns and returns it.
at line 167
SqlBuilder
getSqlBuilder()
| internal |
No description
at line 180
ActiveRow|null
get(mixed $key)
Returns row specified by primary key.
at line 191
ActiveRow|null
fetch()
Returns the next row or null if there are no more rows.
at line 204
mixed
fetchField(string|null $column = null)
deprecated
deprecated
Fetches single field.
at line 225
array
fetchPairs(string|int|Closure|null $keyOrCallback = null, string|int|null $value = null)
Returns all rows as associative array, where first argument specifies key column and second value column.
For duplicate keys, the last value is used. When using null as key, array is indexed from zero. Alternatively accepts callback returning value or key-value pairs.
at line 235
array
fetchAll()
Returns all rows.
at line 245
array
fetchAssoc(string $path)
deprecated
deprecated
Returns all rows as associative tree.
at line 260
Selection
select(string $columns, ...$params)
No description
at line 272
Selection
wherePrimary(mixed $key)
No description
at line 297
Selection
where(string|array $condition, ...$params)
No description
at line 310
Selection
joinWhere(string $tableChain, string $condition, ...$params)
No description
at line 321
protected void
condition(string|array $condition, array $params, string|null $tableChain = null)
Adds condition, more calls appends with AND.
at line 347
Selection
whereOr(array $parameters)
No description
at line 382
Selection
order(string $columns, ...$params)
No description
at line 394
Selection
limit(int|null $limit, int|null $offset = null)
No description
at line 406
Selection
page(int $page, int $itemsPerPage, $numOfPages = null)
No description
at line 424
Selection
group(string $columns, ...$params)
No description
at line 436
Selection
having(string $having, ...$params)
No description
at line 448
Selection
alias(string $tableChain, string $alias)
No description
at line 462
mixed
aggregation(string $function, string|null $groupFunction = null)
Executes aggregation function.
at line 483
int
count(string|null $column = null)
Counts number of rows. If column is not provided returns count of result rows, otherwise runs new sql counting query.
at line 497
mixed
min(string $column)
Returns minimum value from a column.
at line 506
mixed
max(string $column)
Returns maximum value from a column.
at line 515
mixed
sum(string $column)
Returns sum of values in a column.
at line 524
protected void
execute()
No description
at line 569
protected ActiveRow
createRow(array $row)
deprecated
deprecated
No description
at line 576
Selection
createSelectionInstance(string|null $table = null)
deprecated
deprecated
No description
at line 583
protected GroupedSelection
createGroupedSelectionInstance(string $table, string $column)
deprecated
deprecated
No description
at line 589
protected ResultSet
query(string $query)
No description
at line 595
protected void
emptyResultSet(bool $clearCache = true, bool $deleteReferencedCache = true)
No description
at line 617
protected void
saveCacheState()
No description
at line 645
protected Selection
getRefTable($refPath)
Returns Selection parent for caching.
at line 655
protected void
loadRefCache()
Loads refCache references
at line 664
protected string
getGeneralCacheKey()
Returns general cache key independent on query parameters or sql limit Used e.g. for previously accessed columns caching
at line 687
protected string
getSpecificCacheKey()
Returns object specific cache key dependent on query parameters Used e.g. for reference memory caching
at line 702
bool
accessColumn(string|null $key, bool $selectColumn = true)
| internal |
No description
at line 768
void
removeAccessColumn(string $key)
| internal |
No description
at line 779
bool
getDataRefreshed()
Returns if selection requeried for more columns.
at line 793
ActiveRow|array|int|bool
insert(iterable $data)
Inserts row in a table. Returns ActiveRow or number of affected rows for Selection or table without primary key.
at line 874
int
update(iterable $data)
Updates all rows in result set.
Joins in UPDATE are supported only in MySQL
at line 895
int
delete()
Deletes all rows in result set.
at line 908
ActiveRow|false|null
getReferencedTable(ActiveRow $row, string|null $table, string|null $column = null)
Returns referenced row.
at line 955
GroupedSelection|null
getReferencingTable(string $table, string|null $column = null, int|string|null $active = null)
Returns referencing rows.
at line 988
void
rewind()
No description
at line 997
ActiveRow|false
current()
No description
at line 1005
string|int
key()
No description
at line 1011
void
next()
No description
at line 1019
bool
valid()
No description
at line 1033
void
offsetSet(string $key, ActiveRow $value)
Mimic row.
at line 1045
ActiveRow|null
offsetGet(string $key)
Returns specified row.
at line 1056
bool
offsetExists(string $key)
Tests if row exists.
at line 1067
void
offsetUnset(string $key)
Removes row from result set.