List of objects on steroids.

Class used for wrapping list of objects into result set with filtering, ordering and paging capabilities.

author Tomasz Sawicki (https://github.com/Furgas)
package Common

 Methods

Intercepts filtering and ordering method calls, prepares data and runs filtering or ordering.

__call(string $name, array $arguments) : \kyResultSet

To get available filter methods, call kyObjectType::getAvailableFilterMethods(). To get available order methods, call kyObjectType::getAvailableOrderMethods().

Parameters

$name

string

Method name.

$arguments

array

Method arguments.

Returns

Constructs a result set.

__construct(\kyObjectBase[] | \kyResultSet $objects, string $class_name, \kyResultSet $previous_result_set) 

Parameters

$objects

\kyObjectBase[]\kyResultSet

List of objects in this result set.

$class_name

string

Optional. Class name of objects in this result set.

$previous_result_set

\kyResultSet

Optional result set which was the base of filtering operation producing this result set.

Returns formatted list of objects in this result set.

__toString() 

Calls __toString method of every object.

Collects results of method call on all objects in result set into an array.

collect(string $get_method_name) : array

NOTICE: This method shouldn't be used directly in most cases. Use kyResultSet->collectXXX() instead.

Additional method arguments will be passed as arguments to the get method.

Parameters

$get_method_name

string

Name of the method to call on object.

Returns

array

Compare two objects using values returned by calling indicated get method.

compareObjects(\kyObjectBase $object1, \kyObjectBase $object2, string $get_method_name, bool $asc) : int

NOTICE: Internal helper method for sorting.

Parameters

$object1

\kyObjectBase

First object to compare.

$object2

\kyObjectBase

Second object to compare.

$get_method_name

string

Name of get method to call on each object to compare its values.

$asc

bool

True (default) to sort ascending. False to sort descending.

Returns

int

Countable implementation.

count() 

Iterator implementation.

current() 

Deletes from server all objects in this result sets.

deleteAll() 

WARNING: Use carefully!

Filters objects in this result set and returns new result set.

filterBy(string $get_method_name, array $filter_values) : \kyResultSet

Filtering is done by calling defined get method on all objects and comparing its result with provided filter values. Filter value can be any scalar value (integer, float, string or boolean) or array for special cases. Special cases for filter value: - array('~' "Perl regexp pattern") - running Perl regexp match against object value - array('>', filter_value) - values greater than provided = array('<', filter_value) - values lesser than provided - array('>=', filter_value) - values greater or equal than provided - array('<=', filter_value) - values lesser or equal than provided - array('!=', filter_value) - values other than provided

NOTICE: This method shouldn't be used directly in most cases. Use kyResultSet->filterByXXX(filter_value1, filter_value2) instead. Call kyObjectType::getAvailableFilterMethods() for possible filter methods.

Additional method arguments will be passed as arguments to the get method.

Parameters

$get_method_name

string

Name of get method to call on every object for comparing its value with filter values.

$filter_values

array

List of filter values.

Returns

Returns first object in this result set.

first() : \kyObjectBase

Returns

Returns class name of objects in result set.

getObjectsClassName() : string

Returns

string

Helper for paging results.

getPage(int $page_number, int $items_per_page) : \kyResultSet

Pass page number and maximum items count per page and it will return new result with items on specified page.

NOTICE: Use the same maximum number of items per page for each page to get the proper behaviour.

Parameters

$page_number

int

Page number, starting from 1.

$items_per_page

int

Maximum number of items per page (default 20).

Returns

Returns number of pages to display all objects within this result set.

getPageCount(int $items_per_page) : int

Parameters

$items_per_page

int

Maximum number of items per page (default 20).

Returns

int

Returns PHP array of objects from this result set.

getRawArray() : \kyObjectBase[]

Returns

Iterator implementation.

key() 

ArrayAccess implementation.

offsetExists($offset) 

Parameters

$offset

ArrayAccess implementation.

offsetGet($offset) 

Parameters

$offset

ArrayAccess implementation.

offsetSet($offset, $value) 

Parameters

$offset

$value

ArrayAccess implementation.

offsetUnset($offset) 

Parameters

$offset

Sorts objects in this result set.

orderBy(string $get_method_name, bool $asc) : \kyResultSet

Sorting is done by calling defined get method on all objects and using its result to sort objects. NOTICE: This method shouldn't be used directly in most cases. Use kyResultSet->orderByXXX() instead. Call kyObjectType::getAvailableOrderMethods() for possible order methods. WARNING: Calling this method resets internal pointer of objects array.

Parameters

$get_method_name

string

Name of get method to call on every object to order based on its value.

$asc

bool

True (default) to sort ascending. False to sort descending.

Returns

Removes last (or more) filters in order they were applied.

removeFilter(int $depth) : \kyResultSet

Parameters

$depth

int

How many filters to remove.

Returns

Removes all filters and returns the original result set.

removeFilters() : \kyResultSet

Returns

Iterator implementation.

rewind() 

Iterator implementation.

valid() 

Checks if object values match filter values.

filterObject(array $filter_values, array $object_values) : bool

Parameters

$filter_values

array

Filter values.

$object_values

array

Object values.

Returns

bool

 Properties

 

Class name of objects in this result set.

$class_name : string

 

Cached list of $objects array keys to avoid resetting internal pointer of $objects.

$object_keys : mixed[]

 

List of objects in this result set.

$objects : \kyObjectBase[]

 

List of valid filter operators.

$operators : string[]

 

Optional result set which was the base of filtering operation producing this result set.

$previous_result_set : \kyResultSet

 Constants

 

Prefix for collect methods.

COLLECT_PREFIX : string

 

Prefix for filter methods.

FILTER_PREFIX : string

 

Prefix for order methods.

ORDER_PREFIX : string