From 102075cd915c386a57ba96f67a77815d9b5b4b0a Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Tue, 14 Nov 2017 21:34:58 +0100 Subject: [PATCH] Remove collection, will never use this! --- Stdlib/Collection/Collection.php | 726 ------------------------------- 1 file changed, 726 deletions(-) delete mode 100644 Stdlib/Collection/Collection.php diff --git a/Stdlib/Collection/Collection.php b/Stdlib/Collection/Collection.php deleted file mode 100644 index 710df87e5..000000000 --- a/Stdlib/Collection/Collection.php +++ /dev/null @@ -1,726 +0,0 @@ -collection = $data; - } - - /** - * Turn collection to array. - * - * @return array Collection array representation - * - * @since 1.0.0 - */ - public function toArray() : array - { - return $this->collection; - } - - /** - * Json serialize. - * - * @return string - * - * @since 1.0.0 - */ - public function jsonSerialize() - { - return $this->collection; - } - - /** - * Get average of collection data. - * - * @param mixed $filter Filter for average calculation - * - * @return mixed - * - * @since 1.0.0 - */ - public function avg($filter = null) - { - return $this->sum($filter) / $this->count(); - } - - /** - * Get sum of collection data. - * - * @param mixed $filter Filter for sum calculation - * - * @return mixed - * - * @since 1.0.0 - */ - public function sum($filter = null) - { - $sum = 0; - - if (!isset($filter)) { - foreach ($this->collection as $key => $value) { - if (is_numeric($value)) { - $sum += $value; - } elseif ($value instanceof Collection) { - $sum += $value->sum(); - } - } - } elseif (is_string($filter)) { - foreach ($this->collection as $key => $value) { - if (isset($value[$filter]) && is_numeric($value[$filter])) { - $sum += $value[$filter]; - } - } - } elseif ($filter instanceof \Closure) { - $sum = $filter($this->collection); - } - - return $sum; - } - - /** - * Get collection count. - * - * @return int - * - * @since 1.0.0 - */ - public function count() - { - return count($this->collection); - } - - /** - * Chunk collection. - * - * Creates new collection in the specified size. - * - * @param int $size Chunk size - * - * @return Collection[] - * - * @since 1.0.0 - */ - public function chunk(int $size) : array - { - $arrays = array_chunk($this->collection, $size); - $collections = []; - - foreach ($arrays as $array) { - $collections[] = new self($array); - } - - return $collections; - } - - /** - * Collapse collection. - * - * @return Collection - * - * @since 1.0.0 - */ - public function collapse() : Collection - { - $return = []; - - return new self(array_walk_recursive($this->collection, function ($a) use (&$return) { - $return[] = $a; - })); - } - - public function combine(array $values) : Collection - { - foreach ($this->collection as $key => $value) { - if (is_int($key) && is_string($value)) { - $this->collection[$value] = current($values); - unset($this->collection[$key]); - } elseif (is_string($key) && is_string($value)) { - $this->collection[$key] = [$value, current($values)]; - } elseif (is_array($value)) { - $this->collection[$key][] = current($values); - } else { - continue; - } - - next($values); - } - - return $this; - } - - /** - * Check if collection contains a value. - * - * @param string|int|float|\Closure $find Needle - * - * @return bool - * - * @since 1.0.0 - */ - public function contains($find) : bool - { - foreach ($this->collection as $key => $value) { - if (is_string($find) && ((is_string($value) && $find === $value) || (is_array($value) && in_array($find, $value)))) { - return true; - } elseif ($find instanceof \Closure) { - $result = $find($value, $key); - - if ($result) { - return true; - } - } - } - - return false; - } - - /** - * Diff of collection. - * - * @param Collection|array $compare To compare with - * - * @return array - * - * @since 1.0.0 - */ - public function diff($compare) : array - { - $diff = []; - - foreach ($this->collection as $key => $value) { - if ($value !== current($compare)) { - $diff[] = $value; - } - - next($compare); - } - - return $diff; - } - - public function diffKeys(array $compare) - { - $diff = []; - - foreach ($this->collection as $key => $value) { - if ($key !== current($compare)) { - $diff = $key; - } - - next($compare); - } - - return $diff; - } - - /** - * Get collection that contains every n-th element. - * - * @param int $n Every n-th element - * - * @return Collection - * - * @since 1.0.0 - */ - public function every(int $n) : Collection - { - $values = array_values($this->collection); - $keys = array_keys($this->collection); - $count = count($values); - - $new = []; - for ($i = 0; $i < $count; $i += $n) { - $new[$keys[$i]] = $values[$i]; - } - - return new self($new); - } - - public function get($key) - { - if (!isset($this->collection[$key])) { - if (is_int($key) && $key < $this->count()) { - return $this->collection[array_keys($this->collection)[$key]]; - } - } else { - return $this->collection[$key]; - } - - return null; - } - - public function except($filter) : Collection - { - if (!is_array($filter)) { - $filter = [$filter]; - } - - $new = []; - for ($i = 0; $i < $this->count(); $i++) { - - if (!in_array($this->get($i), $filter)) { - $new[] = $this->get($i); - } - } - - return new self($new); - } - - public function filter($filter) : Collection - { - $new = []; - foreach ($this->collection as $key => $value) { - if ($filter($key, $value)) { - $new[$key] = $value; - } - } - - return new self($new); - } - - public function first(\Closure $filter = null) - { - foreach ($this->collection as $key => $value) { - if (!isset($filter) || $filter($key, $value)) { - return $value; - } - } - - return null; - } - - public function flatten() : Collection - { - return new self(ArrayUtils::arrayFlatten($this->collection)); - } - - public function flip() : Collection - { - return new self(array_flip($this->collection)); - } - - public function groupBy($filter) : Collection - { - $new = []; - foreach ($this->collection as $key => $value) { - if (is_string($filter)) { - $group = $filter; - } elseif ($filter instanceof \Closure) { - $group = $filter($value, $key); - } else { - throw new \Exception(); - } - - $new[$value[$group]][] = $value; - } - - return new self($new); - } - - public function last(\Closure $filter = null) - { - $collection = array_reverse($this->collection, true); - foreach ($collection as $key => $value) { - if (!isset($filter) || $filter($key, $value)) { - return $value; - } - } - - return null; - } - - public function sort() : Collection - { - return new self(arsort($this->collection)); - } - - public function sortBy($filter) : Collection - { - return new self(uasort($this->collection, $filter)); - } - - public function reverse() : Collection - { - return new self(array_reverse($this->collection)); - } - - public function map($filter) : Collection - { - $new = []; - foreach ($this->collection as $key => $value) { - $new[$key] = $filter($value, $key); - } - - return new self($new); - } - - public function remove($key) : Collection - { - if ($key instanceof \Closure) { - foreach ($this->collection as $index => $value) { - if ($key($value, $index)) { - unset($this->collection[$index]); - } - } - } elseif (is_scalar($key)) { - unset($this->collection[$key]); - } - - return $this; - } - - public function has($key) : bool - { - return isset($this->collection[$key]); - } - - public function implode(string $delim, $key) : string - { - $implode = ''; - foreach ($this->collection as $colKey => $value) { - if (!isset($key) && is_scalar($value)) { - $implode .= $value . $delim; - } elseif (isset($key)) { - $implode .= $value[$key] . $delim; - } - } - - return rtrim($implode, $delim); - } - - public function intersect(array $values) : Collection - { - $new = []; - foreach ($this->collection as $key => $value) { - if (in_array($value, $values)) { - $new[] = $value; - } - } - - return new self($new); - } - - public function isEmpty() : bool - { - return empty($this->collection); - } - - public function keys() : array - { - return array_keys($this->collection); - } - - public function max($key = null) - { - $max = null; - foreach ($this->collection as $index => $value) { - if (isset($key) && is_array($value)) { - $value = $value[$index]; - } - - if (!isset($max) || $value > $max) { - $max = $value; - } - } - - return $max; - } - - public function min($key = null) - { - $min = null; - foreach ($this->collection as $index => $value) { - if (isset($key) && is_array($value)) { - $value = $value[$index]; - } - - if (!isset($min) || $value > $min) { - $min = $value; - } - } - - return $min; - } - - public function only(array $filter) : Collection - { - $new = []; - foreach ($filter as $key => $value) { - $new[$value] = $this->collection[$value]; - } - - return new self($new); - } - - public function pluck(string $id) : Collection - { - $new = []; - foreach ($this->collection as $key => $value) { - $new[] = $value[$id]; - } - - return new self($new); - } - - public function merge(array $merge) : Collection - { - return new self(array_merge($this->collection, $merge)); - } - - public function pop() - { - return array_pop($this->collection); - } - - public function prepend(...$element) : Collection - { - $this->collection = array_merge($element, $this->collection); - - return $this; - } - - public function pull($key) - { - $value = $this->collection[$key]; - unset($this->collection[$key]); - - return $value; - } - - public function put($key, $value) : Collection - { - $this->collection[$key] = $value; - - return $this; - } - - public function random() - { - $i = mt_rand(0, $this->count() - 1); - - return $this->get($i); - } - - public function reduce($callback, $start = 0) - { - $total = $start; - foreach ($this->collection as $key => $value) { - $total = $callback($total, $value, $key); - } - - return $total; - } - - public function search($filter, bool $strict = true) /* : void */ - { - if (is_scalar($filter)) { - array_search($filter, $this->collection, $strict); - } else { - foreach ($this->collection as $key => $value) { - if ($filter($value, $key)) { - return $key; - } - } - } - - return null; - } - - public function shift() : Collection - { - return new self(array_shift($this->collection)); - } - - public function shuffle() : Collection - { - return new self(shuffle($this->collection)); - } - - public function slice(int $offset, int $length) : Collection - { - return new self(array_slice($this->collection, $offset, $length)); - } - - public function splice(int $offset, int $length) : Collection - { - return new self(array_splice($this->collection, $offset, $length)); - } - - public function push($value) : Collection - { - $this->collection[] = $value; - - return $this; - } - - /** - * Return the current element - * @link http://php.net/manual/en/iterator.current.php - * @return mixed Can return any type. - * @since 5.0.0 - */ - public function current() - { - return current($this->collection); - } - - /** - * Offset to retrieve - * - * @param mixed $offset The offset to retrieve. - * - * @return mixed Can return all value types. - * - * @throws \Exception - * - * @link http://php.net/manual/en/arrayaccess.offsetget.php - * - * @since 1.0.0 - */ - public function offsetGet($offset) - { - if (!isset($this->collection[$offset])) { - throw new \Exception('Invalid offset'); - } - - return $this->collection[$offset]; - } - - /** - * Move forward to next element - * @link http://php.net/manual/en/iterator.next.php - * @return void Any returned value is ignored. - * @since 5.0.0 - */ - public function next() - { - next($this->collection); - } - - /** - * Return the key of the current element - * @link http://php.net/manual/en/iterator.key.php - * @return mixed scalar on success, or null on failure. - * @since 5.0.0 - */ - public function key() - { - return key($this->collection); - } - - /** - * Checks if current position is valid - * @link http://php.net/manual/en/iterator.valid.php - * @return boolean The return value will be casted to boolean and then evaluated. - * Returns true on success or false on failure. - * @since 5.0.0 - */ - public function valid() - { - return isset($this->collection[key($this->collection)]); - } - - /** - * Whether a offset exists - * @link http://php.net/manual/en/arrayaccess.offsetexists.php - * @param mixed $offset

- * An offset to check for. - *

- * @return boolean true on success or false on failure. - *

- *

- * The return value will be casted to boolean if non-boolean was returned. - * @since 5.0.0 - */ - public function offsetExists($offset) - { - return isset($this->collection[$offset]); - } - - /** - * Rewind the Iterator to the first element - * @link http://php.net/manual/en/iterator.rewind.php - * @return void Any returned value is ignored. - * @since 5.0.0 - */ - public function rewind() - { - rewind($this->collection); - } - - /** - * Offset to set - * @link http://php.net/manual/en/arrayaccess.offsetset.php - * @param mixed $offset

- * The offset to assign the value to. - *

- * @param mixed $value

- * The value to set. - *

- * @return void - * @since 5.0.0 - */ - public function offsetSet($offset, $value) - { - $this->collection[$offset] = $value; - } - - /** - * Offset to unset - * @link http://php.net/manual/en/arrayaccess.offsetunset.php - * @param mixed $offset

- * The offset to unset. - *

- * @return void - * @since 5.0.0 - */ - public function offsetUnset($offset) - { - if (isset($this->collection[$offset])) { - unset($this->collection[$offset]); - } - } -} \ No newline at end of file