for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php namespace BuildR\Collection\Collection;
use BuildR\Collection\Exception\CollectionException;
/**
* Abstract collection implementation
*
* BuildR PHP Framework
* @author Zoltán Borsos <[email protected]>
* @package Collection
* @subpackage Collection
* @copyright Copyright 2015, Zoltán Borsos.
* @license https://github.com/Zolli/BuildR/blob/master/LICENSE.md
* @link https://github.com/Zolli/BuildR
*/
abstract class AbstractCollection implements CollectionInterface {
* @type array
protected $data = [];
* {@inheritdoc}
public function toArray() {
return (array) $this->data;
}
public function clear() {
$this->data = [];
public function isEmpty() {
return empty($this->data);
public function size() {
return (is_array($this->data)) ? count($this->data) : 0;
* @codeCoverageIgnore
public function current() {
return current($this->data);
public function next() {
return next($this->data);
public function key() {
return key($this->data);
public function valid() {
return key($this->data) !== NULL;
public function rewind() {
return reset($this->data);
public function count() {
return $this->size();
* @param array|\BuildR\Collection\Collection\CollectionInterface $elements
* @return array
protected function collectionToArray($elements) {
if($elements instanceof CollectionInterface) {
$elements = $elements->toArray();
return $elements;