\Phabstractic\Data\Types\ResourceAbstractSortedList

Abstract Sorted List - Automatically Sorted List

This list depends on an implementation of a member function that sorts the data.

CHANGELOG

1.0: Created AbstractList - May 10th, 2013 2.0: Refactored and re-formatted for inclusion in primus - April 11th, 2015 3.0: reformatted for inclusion in phabstractic - July 21st, 2016

Summary

Methods
Properties
Constants
configure()
saveSettings()
getSettings()
processSettings()
__construct()
top()
topReference()
index()
indexReference()
pop()
popReference()
getList()
No public properties found
No constants found
cmp()
$conf
N/A
No private methods found
No private properties found
N/A

Properties

$conf

$conf : \Phabstractic\Features\Zend\Config\Config

The objects configuration object

Should be an instance of Zend/Config

Type

\Phabstractic\Features\Zend\Config\Config — The object configuration info

Methods

configure()

configure(array|string|\Phabstractic\Features\Zend\Config\Config  $configuration, string  $format = null, mixed  $context = null) : boolean

Configure An Object

Expects an array for configuration however, you can also pass it a filepath where it will read the information from a file automatically detecting the format using the file extension. You can also pass a Zend/Config object already made.

You can also pass a format specifier (forced format) for use in a if $configuration is a string formatted with such information. E.G. to load from a string in the format ini:

$this->configure($configString, 'ini');

The $context argument is used for any additional reader constructor information, such as the constructor for the 'yaml' format.

NOTE: You can override/extend the classes used for reading formats by identifying an additional array in the property $this->configReaders. This will merge with the standard formats array.

Parameters

array|string|\Phabstractic\Features\Zend\Config\Config $configuration

The objects configuration information.

string $format

The forced format, or format for configuration string

mixed $context

Any additional information for a reader constructor, such as needed for the YAML format.

Returns

boolean —

True if instantiated

saveSettings()

saveSettings(string  $file, \Phabstractic\Features\Zend\Config\Writer\WriterInterface  $writer = null, boolean  $exclusive = true, mixed  $context = null) 

Save an Object's Configuration to a File

Takes an objects $conf property and writes the information contained therein to a file with a format automatically specified by the filename.

It is possible to retrieve a string of a particular format from this method by specifying the filename '#string' with an extension indicating the desired format, such as '#string.json'.

The $context argument is used for any additional reader constructor information, such as the constructor for the 'yaml' format.

NOTE: You can override/extend the classes used for writing formats by identifying an additional array in the property $this->configWriters. This will merge with the standard formats array.

Parameters

string $file

The file path to write to, or '#string.ext'

\Phabstractic\Features\Zend\Config\Writer\WriterInterface $writer

The optional writer object supplied to use (such as a MySQL writer)

boolean $exclusive

Argument provided to toFile(), file exclusive lock when writing

mixed $context

Any additionla writer constructor information (YAML)

getSettings()

getSettings(string  $format,   $context = null) : string|boolean

Retrieve an Object's Configuration Information As String

This is a shortcut to ::saveSettings() which specifies a format and forces the return of a string, using the #string.ext filename -see documentation for ::saveSettings()-

Parameters

string $format

The format to return, must be supported by ::saveSettings(), use $this->configWriters to support additional formats.

$context

Returns

string|boolean —

The formatted string, or false otherwise

processSettings()

processSettings(\Phabstractic\Features\Zend\Config\Processor\ProcessorInterface  $processor) 

Process an Object's Configuration

This uses a Zend\Config\Processor implementation to process the configuration information, such as constants. The processor must be supplied and implement ProcessorInterface

NOTE: Edits the $conf object in place.

Parameters

\Phabstractic\Features\Zend\Config\Processor\ProcessorInterface $processor

The given processor object

__construct()

__construct(mixed  $data = null, \Phabstractic\Data\Types\Resource\FilterInterface  $restrictions = null, array  $options = array()) 

The Sorted List constructor

Accepts data, and the obligatory options parameter

Passes the required restrictions onto the parent class along with the options

NOTE: In order to sort a list it MUST all be the same type, so restrictions are set up.

This instantiates the class and sets the index

Parameters

mixed $data

The data to initialize the queue

\Phabstractic\Data\Types\Resource\FilterInterface $restrictions
array $options

The options to pass into the object

top()

top() : string|\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\None

Returns the top value

This abstract class only sorts

Throws

\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\Exception\RangeException

if no top exists

Returns

string|\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\None —

'Top' value of list otherwise

topReference()

topReference() : string|\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\None

Returns the top value as a reference

This abstract class only sorts

Throws

\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\Exception\RangeException

if top is empty

Returns

string|\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\None

index()

index(integer  $i) : string|\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\None

Returns the data objects specified by the index request

This abstract class only sorts

Parameters

integer $i

the given index

Throws

\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\Exception\RangException

if index is out of range

Returns

string|\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\None

indexReference()

indexReference(integer  $i) : string|\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\None

Returns the data objects specified by the index request

This abstract class only sorts

Parameters

integer $i

the given index

Throws

\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\Exception\RangException

if index is out of range

Returns

string|\Phabstractic\Data\Types\Resource\Phabstractic\Data\Types\None

pop()

pop() : string|\Phabstractic\Data\Types\Resource\Falcraft\Data\Types\Null

Pop the item off the list

This abstract class only sorts

Returns

string|\Phabstractic\Data\Types\Resource\Falcraft\Data\Types\Null

popReference()

popReference() : string|\Phabstractic\Data\Types\Resource\Falcraft\Data\Types\Null

Pop the item off the list

This abstract class only sorts

Returns

string|\Phabstractic\Data\Types\Resource\Falcraft\Data\Types\Null

getList()

getList() : array

Retrieve the list element of the list

Returns

array —

The current internal list member

cmp()

cmp(  $l,   $r) 

The comparison function.

Returns -1 if $l is 'less than'/before $r 0 if $l and $r are equal +1 if $l is 'greater than'/after $r

Parameters

$l
$r