salient / collections
The collections package of the Salient toolkit
v0.99.65
2024-12-09 13:32 UTC
Requires
- php: >=7.4
- salient/contracts: v0.99.65
- salient/utils: v0.99.65
- dev-main
- v0.99.65
- v0.99.64
- v0.99.63
- v0.99.62
- v0.99.61
- v0.99.60
- v0.99.59
- v0.99.58
- v0.99.57
- v0.99.56
- v0.99.55
- v0.99.54
- v0.99.53
- v0.99.52
- v0.99.51
- v0.99.50
- v0.99.49
- v0.99.48
- v0.99.47
- v0.99.46
- v0.99.45
- v0.99.44
- v0.99.43
- v0.99.42
- v0.99.41
- v0.99.40
- v0.99.39
- v0.99.38
- v0.99.37
- v0.99.36
- v0.99.35
- v0.99.34
- v0.99.33
- v0.99.32
This package is auto-updated.
Last update: 2024-12-09 13:39:07 UTC
README
The collections component of the Salient toolkit
salient/collections
provides classes and traits that allow collections of
values to be accessed via array-like objects with chainable methods.
- Collections are immutable except when array syntax is used to set or unset items1
- Use
Collection<TKey of array-key,TValue>
orListCollection<TValue>
with values of any type, or extend them to add type-specific behaviour - Remix
CollectionTrait
,ListCollectionTrait
,ReadOnlyCollectionTrait
andReadOnlyArrayAccessTrait
for custom behaviour, e.g. to create a strictly immutable collection class
<?php // The constructor accepts any iterable, including another collection $foo = new \Salient\Collection\Collection(['foo']); // Items can be added using array syntax $foo[] = 'bar'; // Otherwise, the collection is immutable $foo = $foo->add('baz'); // 'qux' is printed but the collection is unchanged because the result of the // expression is discarded $foo->unshift('qux')->sort()->forEach( fn($item) => print "- $item" . \PHP_EOL ); print 'Items in collection: ' . $foo->count() . \PHP_EOL;
Output:
- bar
- baz
- foo
- qux
Items in collection: 3
Documentation
API documentation for salient/collections
tracks the main
branch
of the toolkit's GitHub repository, where further documentation can
also be found.