atournayre / collection
Collections library.
0.8.1
2024-05-14 22:23 UTC
Requires
- php: >=8.1
- aimeos/map: ^3.4
- atournayre/assert: ^0
- atournayre/types: ^0
- doctrine/collections: ^2.1
- webmozart/assert: ^1.11
Requires (Dev)
- phpunit/phpunit: ^10.0
Conflicts
- phpstan/phpstan: <0.12.20
- vimeo/psalm: <4.6.1 || 4.6.2
README
This library provides a way to manipulate collections.
Installation
Use Composer to install the package:
composer require atournayre/collection
Collections
Examples
Typed Collection
// Samples classes class Person { public function __construct( public string $name ) {} } class People extends TypedCollection { protected static string $type = Person::class; }
// Create collection $collection = People::createAsList([ new Person('John'), ]); $collection[] = new Person('Jack'); // Add item
Typed Collection Immutable
// Samples classes class Person { public function __construct( public string $name ) {} } class People extends TypedCollectionImmutable { protected static string $type = Person::class; }
// Create collection $collection = People::createAsList([ new Person('John'), ]); $collection[] = new Person('Jack'); // Throws a RuntimeException
Decimal Collection
$collection = DecimalValueCollection::fromArray([ DecimalValue::create(4.235, 3), DecimalValue::fromInt(1), DecimalValue::fromString('2'), DecimalValue::fromFloat(3.01, 2), ], 2); $collection[0]->toFloat(); // 4.24 $collection[1]->toFloat(); // 1.00 $collection[2]->toFloat(); // 2.00 $collection[3]->toFloat(); // 3.01
Contribute
Contributions to the package are always welcome!
- Report any bugs or issues you find on the issue tracker.
- You can grab the source code at the package's Git repository.
License
All contents of this package are licensed under the MIT license.