PHP Class lithium\data\source\Result
Just a forward-only cursor is required, not necessarily a rolling cursor. Not all
data sources can support rolling cursors, that's why forward-only cursors have been
chosen here as the least common denominator for the abstraction.
Rolling cursors cannot be emulated from an underlying forward-only cursor in a
(memory) efficient way.
Result does not try to and will deliberately not keep
already yielded results in an internal cache.
To allow full (back and forth) iteration over the yielded results, a wrapping class
(i.e.
Collection) may keep such a cache while draining the
Result from outside.
Because of these characteristics an instance of
Result may be used only once.
After draining the result it cannot be rewinded or reset. This is similar to the
behavior of the
NoRewindIterator, where rewind calls have no effect.
The first result will be eager loaded from the cursor, as it is expected the
result will be used at least once.
The class also provides a mechanism which buffers results when peeking for next ones. The
buffered results will then be used when continuing to iterate over the result object.
Show file
Open project: unionofrad/lithium
Class Usage Examples
Protected Properties
Public Methods
Method |
Description |
|
__destruct ( ) : void |
Destructor. |
|
close ( ) : void |
Close the resource. |
|
current ( ) : array |
Contains the current result. |
|
key ( ) : integer | null |
Returns the current key position on the result. |
|
next ( ) : mixed |
Fetches the next element from the resource. |
|
peek ( ) : mixed |
Peeks at the next element in the resource without advancing Result's cursor. |
|
resource ( ) : object | resource |
Returns the used resource. |
|
rewind ( ) : void |
Noop to fulfill the Iterator interface. Result is forward-only. |
|
valid ( ) : boolean |
Checks if current position is valid. |
|
Protected Methods
Method |
Description |
|
_fetch ( ) : array | boolean | null |
Fetches the next result from the resource. |
|
_init ( ) : void |
Initializer. Eager loads the first result. |
|
Method Details
__destruct()
public method
_fetch()
abstract protected method
Fetches the next result from the resource.
abstract protected _fetch ( ) : array | boolean | null |
return |
array | boolean | null |
Returns a key/value pair for the next result,
`null` if there is none, `false` if something bad happened. |
Initializer. Eager loads the first result.
Contains the current result.
public current ( ) : array |
return |
array |
The current result (or `null` if there is none). |
Returns the current key position on the result.
Fetches the next element from the resource.
public next ( ) : mixed |
return |
mixed |
The next result (or `null` if there is none). |
Peeks at the next element in the resource without advancing Result's cursor.
public peek ( ) : mixed |
return |
mixed |
The next result (or `null` if there is none). |
Returns the used resource.
Noop to fulfill the Iterator interface. Result is forward-only.
Checks if current position is valid.
Property Details
$_autoConfig protected property
protected array $_autoConfig |
return |
array |
|
$_buffer protected property
Buffer results of query before returning / iterating. Allows consumers to 'peek' at results.
protected array $_buffer |
return |
array |
|
$_current protected property
Contains the current element of the result set.
protected mixed $_current |
return |
mixed |
|
$_iterator protected property
The current position of the iterator.
protected int $_iterator |
return |
integer |
|
Key of the current result.
$_resource protected property
protected object|resource|null $_resource |
return |
object | resource | null |
|
$_valid protected property
Indicates whether the current position is valid or not.
protected bool $_valid |
return |
boolean |
|