Download the PHP package jcstrandburg/demeter without Composer
On this page you can find all versions of the php package jcstrandburg/demeter. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package demeter
Demeter
This library provides a set of immutable collection classes that allow for an consistent, object oriented, fluent style of manipulating data collections. It is mainly inspired by LINQ from C# and the Java Stream API.
Installing
composer require jcstrandburg\demeter
Usage
Vanilla PHP:
With Demeter:
Features
Version History
Unreleased
0.8
Added
Extensionsstatic class for extension method support
0.7
Changes
- All collection classes now implement
IteratorAggregateinstead of extendingIteratorIterator GroupedCollection::getGroupKeysnow returns aCollectioninstead of an array- It is now possible to safely perform concurrent iterations over the same
Sequenceor derivations thereof.
For example, if $x = sequence([1,2,3,4]);
Before: $x->zip($x->map(Lambda::plus(1)), Lambda::add())->toArray() == [3,6]
Now: $x->zip($x->map(Lambda::plus(1)), Lambda::add())->toArray() == [3,5,7,9]
Removed
LazyRewindableIteratorhas been replaced with an internal implementation
Added
as_iteratorutility function
Deprecated
as_traversable- useas_iteratorinstead
0.6
Fixed
- Call the parent constructor from
ArrayGroupedCollection
Changed
- Breaking: Convert
GroupedCollectionto an interface, with the existing implementation becomingArrayGroupedCollection - Breaking: Convert
Groupingto an interface, with the existing implementation becomingArrayGrouping - Make
CollectionextendCountable xrangenow returns aSequence
Added
Lambda::constantLambda::toArrayLambda::getGroupKeySequence::zipSequence::chunkSequence::joinSequence::implode
0.5
Changed
- Breaking: Changed the behavior of
HashSetso that it acts like a proper set (hashing is used for buckets but not equality comparisons) - Breaking: Convert
Sequenceto an interface, with the existing implementation becomingLazySequence - Breaking: Convert
Collectionto an interface, with the existing implementation becomingArrayCollection - Breaking: Convert
Dictionaryto an interface, with the existing implementation becomingArrayDictionary - Breaking: Functions previously returning
HashSetnow returnSet
Added
- Introduce
Setinterface whichHashSetimplements Sequence::exceptandSequence::intersectLambdautility classdictionaryandsetfactory functions
0.4
Added
HashMap::addManyHashMap::removeManySequence::toDictionaryDictionary
0.3
Changed
sequenceandcollectnow will return their argument unmodified if is already of the correct type
Added
HashSetSequence::asSetSequence::firstSequence::firstOrNullSequence::lastSequence::lastOrNullSequence::singleSequence::singleOrNull
0.2
Added
Sequence::groupByGroupedCollectionGrouping
0.1
Added
SequenceCollection- Various utility functions
LazyRewindableIteratorMappedIteratorSkipWhileIteratorTakeWhileIterator
License
This project is licensed under the MIT License - see the LICENSE.md file for details