From 8ac3a67e2b896e7a52a452985f6ffd0fa6f36439 Mon Sep 17 00:00:00 2001 From: izica Date: Tue, 6 Aug 2019 19:49:16 +0700 Subject: [PATCH] add singleElement option to collect() --- PhpCollection.php | 40 ++++++++++++++++++++++++---------------- collect.php | 4 ++-- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/PhpCollection.php b/PhpCollection.php index 08fd260..c3d5111 100644 --- a/PhpCollection.php +++ b/PhpCollection.php @@ -23,15 +23,19 @@ public function __construct($data) /** * @param $data + * @param bool $isSingleElement * @return PhpCollection */ - public static function collect($data) + public static function collect($data, $isSingleElement = false) { + if($isSingleElement){ + return new PhpCollection([$data]); + } return new PhpCollection($data); } /** - * @param $key + * @param string $key * @return PhpCollection */ public function pluck($key) @@ -44,7 +48,7 @@ public function pluck($key) } /** - * @param $keys + * @param array $keys * @return PhpCollection */ public function only($keys) @@ -78,7 +82,7 @@ public function only($keys) } /** - * @param $keys + * @param array $keys * @return PhpCollection */ public function exclude($keys) @@ -107,6 +111,10 @@ public function exclude($keys) return new PhpCollection($arData); } + /** + * @param array $array + * @return PhpCollection + */ public function zip($array) { $arData = []; @@ -154,7 +162,7 @@ public function join($glue = ', ') } /** - * @param bool $function + * @param function $function * @return PhpCollection */ public function filter($function = false) @@ -174,7 +182,7 @@ public function filter($function = false) } /** - * @param bool $function + * @param function $function * @return PhpCollection */ public function map($function = false) @@ -192,7 +200,7 @@ public function map($function = false) } /** - * @param $key + * @param string $key * @return PhpCollection */ public function keyBy($key) @@ -205,7 +213,7 @@ public function keyBy($key) } /** - * @param $key + * @param string $key * @return PhpCollection */ public function groupBy($key) @@ -250,7 +258,7 @@ public function count() } /** - * @return mixed + * @return array */ public function first() { @@ -262,7 +270,7 @@ public function first() } /** - * @return mixed + * @return array */ public function last() { @@ -305,7 +313,7 @@ public function sortBy($key, $asc = true) } /** - * @param $function + * @param function $function * @return PhpCollection */ public function sort($function = false) @@ -321,7 +329,7 @@ public function sort($function = false) } /** - * @param $function + * @param function $function * @return bool|mixed */ public function find($function) @@ -336,7 +344,7 @@ public function find($function) } /** - * @param $function + * @param function $function * @return bool */ public function every($function) @@ -350,7 +358,7 @@ public function every($function) } /** - * @param $function + * @param function $function * @return bool */ public function contains($function) @@ -364,7 +372,7 @@ public function contains($function) } /** - * @param $function + * @param function $function * @return bool */ public function some($function) @@ -373,7 +381,7 @@ public function some($function) } /** - * @param $array + * @param array $array * @return PhpCollection */ public function merge($array) diff --git a/collect.php b/collect.php index e4e9245..3809d99 100644 --- a/collect.php +++ b/collect.php @@ -2,8 +2,8 @@ require_once 'PhpCollection.php'; if (!function_exists('collect')) { - function collect($data) + function collect($data, $isSingleElement = false) { - return \Izica\PhpCollection::collect($data); + return \Izica\PhpCollection::collect($data, $isSingleElement); } }