Skip to content

Latest commit

 

History

History
122 lines (97 loc) · 4.47 KB

CHANGELOG.md

File metadata and controls

122 lines (97 loc) · 4.47 KB

Changelog

##0.2.0

  • First release
  • Every operation is represented by different Collection class

##0.3.0

  • Total overhaul and move to more functional design
  • Collection class now uses Generator functions under the hood.
  • The functions are also accessible allowing for functional programming.
  • Performance improved 2x.

##0.4.0

  • More utility functions added

##0.4.1

  • Missing utility functions added to readme

##0.4.2

  • Ditching PHP 5.5. support
  • Variadics introduced to some functions

##0.4.3

  • No longer rewinds wrapped collection in constructor

##1.0.0

  • The project is ready for production use. No known bugs exist.

##2.0.0

  • Project moved to new global namespace DusanKasan (whole namespace is DusanKasan\Knapsack) to avoid conflicts.
  • Collection::realize was introduced to force materialization of the collection (turning lazy collection into non-lazy).
  • Collection::concat and Collection::interleave are now variadic.
  • Breaking change: toArray and Collection::toArray now behave more logicaly and do not convert items recursively.

##3.0.0

  • Automatic conversion of return values to Collections is no longer happening if you do not explicitly require it. Details in documentation.

##3.1.0

  • CollectionTrait has been introduced and its usage documented in readme.
  • New functions added:
    • second() // seems useless but really usefull :)
    • combine($values) // uses current collection as keys, $values as values
    • except($keys) // rejects every item with key found in $keys
    • only($keys) // filters only items with key found in $keys
    • difference(...$collections) // filters items that are in the original collection but not in any of $collections
    • flip() // flips keys with values
    • has($key) // checks for the existence of item with $key key
  • A handful of bugfixes also:
    • Collection constructor might have experienced conflicts between callable (in array form) and array arguments
    • Pluck might have failed on heterogenous collections. Now ignores non-collection items.

##4.0.0

  • GroupByKey function introduced
  • Serialization support added
  • Changelog added
  • Breaking change: combine now throws NonEqualCollectionLength

##5.0.0

  • Zip function added
  • Extract function added
  • Transform function added
  • Breaking change: combine now stops when it runs out of keys or values
  • Breaking change: pluck removed (replaced by extract)

##6.0.0

  • Intersect function added
  • Average utility function added
  • Concatenate utility function added
  • Reduce/reduceRight/second now have the returnAsCollection flag
  • Breaking change: getNth removed (to solve ambiguity with takeNth)
  • Breaking change: difference renamed to diff

##6.1.0

  • Filter can be called without arguments and it will remove falsy values

##6.2.0

  • sizeIsExactly function added
  • sizeIsGreaterThan function added
  • sizeIsLessThan function added
  • sizeIsBetween function added

##7.0.0

  • The functionality of sum, average, min, max and concatenate moved into collection.
  • Sum collection function added
  • Average collection function added
  • Min collection function added
  • Max collection function added
  • ToString collection function added
  • Breaking change: sum utility function removed
  • Breaking change: average utility function removed
  • Breaking change: min utility function removed
  • Breaking change: max utility function removed
  • Breaking change: concatenate utility function removed

##8.0.0

  • Breaking change: sum function will return integer by default, float if there are float type elements
  • Breaking change: average function will not force return float and will return integer if the sum/count result is integer

##8.1.0

  • ReplaceByKeys function added

##8.1.1

  • Fixed bug: the only function always included the item with key equal to zero in the result. Caused by comparing string == 0. Also affected extract.

##8.2.0

  • Dump function added, to make debugging easier.

##8.3.0

  • PrintDump function added, to make debugging easier. Prints debug output, but returns the original collection.

##8.4.0

  • Transpose functionality added.

##8.4.1

  • Issue where group by could blow the stack fixed by internally using array to group the items.

##9.0.0

  • Breaking change: Collection no longer implements Iterator but instead implements Traversable via IteratorAggregate
  • Moving from Iterator to Traversable allows for huge performance gains (some 4x improvement at the very least)

##10.0.0

  • Breaking change: If inputFactory returns non-collection, throw InvalidReturnValue