projects / org / se7enxweb / novacollection
Find the Exponential Software extensions you want
UNIX name | Owner | Status |
---|---|---|
NovaCollection | 7x | stable |
Version | Compatible with |
---|---|
N/A | N/A |
Branch |
Travis |
Sensio Insight |
Scrutinizer Quality |
Scrutinizer Coverage |
---|---|---|---|---|
develop |
||||
master |
Because we did not find any Collection for PHP as simple as we wanted, we did ours.
Using *array_* functions against foreach* is not an easy pick. As this library is made to manage low level actions.
We wanted it to be fast, then we compared and we implemented the best choices. (have a look: PHP7.2)
Fully unit tested it is reliable.
$collection = NovaCollection([0,1,2,3,4,5,6,7,8,9,10]);
$collection([2,4], 1, 2, '4-2', '3,2;5-2;10')->toArray();
Result: [2,3,4,1,2,4,3,2,3,4,5,4,3,2,10]
Method |
Description |
---|---|
toArray() |
Get the raw Array. |
set($key, $value) |
Set the value to the key no matter what. |
get($key, $default) |
Get the value related to the key. |
atIndex(int $index) |
Get the item at the given index (numerically). |
keyOf($value) |
Get the key of a value if exists. |
indexOf($value) |
Get the index of a value if exists (numerically). |
containsKey($key) |
Test is the key exists. |
contains($value) |
Test if this values exists. |
add($item) |
Add a new value to the collection, next numeric index will be used. (in-place). |
append(iterable $values) |
Append the items at the end of the collection not regarding the keys. (in-place). |
clear() |
Clear the collection of all its items. (in-place). |
remove($key) |
Remove the $key/value in the collection. (in-place). |
pull($key) |
Remove the $key/value in the collection and return the removed value. (in-place). |
first(callable $callback) |
Get the first time and reset and rewind. |
shift() |
Shift an element off the beginning of the collection. (in-place). |
pop() |
Shift an element off the end of the collection. (in-place). |
last(callable $callback) |
Get the last item. |
map(callable $callback) |
Map and return a new Collection. |
mapKeys(callable $callback, callable $callbackValue) |
Map keys (and/or value) and return a new Collection. |
transform(callable $callback) |
Map. (in-place). |
filter(callable $callback) |
Filter and return a new Collection. |
prune(callable $callback) |
Filter. (in-place). |
combine(iterable $values, bool $inPlace) |
Combine and return a new Collection. |
replace(iterable $values) |
Combine. (in-place). |
combineKeys(iterable $keys) |
Opposite of Combine It keeps the values of the current Collection and assign new keys. |
reindex(iterable $keys) |
CombineKeys. (in-place). |
reduce(callable $callback, $initial) |
Reduce. |
each(callable $callback) |
Run the callback on each element. (passive). |
flip() |
Flip the keys and the values and return a new Collection. |
invert() |
Flip. (in-place). |
merge(iterable $items, bool $inPlace) |
Merge the items and the collections and return a new Collection. |
coalesce(iterable $items) |
Merge. (in-place). |
union(iterable $items, bool $inPlace) |
Union the collection with Items and return a new Collection. |
absorb(iterable $items) |
Union. (in-place). |
assert(callable $callback, bool $expected) |
Assert that the callback result is $expected for all. |
values() |
Return all the values. |
keys() |
Return all the keys. |
pipe(callable $callback) |
Pass the collection to the given callback and return the result. |
shuffle() |
Random. (in-place). |
random() |
Shuffle and return a new Collection. |
unique() |
Deduplicate the collection and return a new Collection. |
implode(string $separator) |
Join the items using the $separator. |
distinct() |
Unique. (in-place). |
zip(iterable $items) |
Merge the values items by items and return a new Collection. |
reverse() |
Reverse the collection and return a new Collection. |
inverse() |
Reverse. (in-place). |
isEmpty() |
Tells if the collection is empty. |
split(int $count) |
Split in the collection in $count parts and return a new Collection. |
chunk(int $size) |
Chunk of $size sub collection and return a new Collection. |
slice(int $offset, int $length) |
Get a slice of the collection and inject it in a new Collection. |
keep(int $offset, int $length) |
Keep a slice of the collection. (in-place). |
applyOn($key, callable $onKeyFound, callable $onKeyNotFound) |
Apply the callback $onKeyFound on the key/value if the key exists. (passive). |
cut(int $offset, int $length) |
Cut a slice of the collection. (in-place). |
diff(iterable $items) |
Compares the collection against $items and returns the values that are not present in the collection. |
diffKeys(iterable $items) |
Compares the collection against $items and returns the keys that are not present in the collection. |
intersect(iterable $items) |
Compares the collection against $items and returns the values that exist in the collection. |
intersectKeys(iterable $items) |
Compares the collection against $items and returns the keys that exist in the collection. |
exists(callable $callback) |
Return true if one item return true to the callback. |
In order to be accepted, your contribution needs to pass a few controls:
To ease the validation process, you can use these 2 scripts:
make codeclean
will check and fix the Coding Standards
make tests
will run the tests