salient / collections
The collections component of the Salient toolkit
v0.99.81
2025-05-07 05:03 UTC
Requires
- php: >=7.4
- salient/contracts: v0.99.81
- salient/utils: v0.99.81
This package is auto-updated.
Last update: 2026-05-20 15:05:12 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 items
- 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,ReadOnlyCollectionTraitandReadOnlyArrayAccessTraitfor 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.