- "Json"-Mapper: support objects in "Arrayy"-collections
- try to optimize autocompletion for PhpStorm
- try to fix phpstan (1.8.4) reported issues
- "Collection" -> fix phpstan check for offset
- optimize some phpdocs (phpstan)
- simplify some code
- "To people of Russia": There is a war in Ukraine right now. The forces of the Russian Federation are attacking civilians.
- fix phpdocs for "chunk()"
- try to optimize support for PhpStorm auto-completion
- remove "gitbook" from "dev-dependencies"
- add "containsOnly()"
- add "getBackwardsGenerator()"
- add "reverseKeepIndex()"
- add more support for Generics + phpstan checks
- fix PHP 8.1 compatibility -> thanks @frenchcomp
- add "NonEmptyString"-Collections (accepts "non-empty-string")
- add "Numeric"-Collections (accepts "numeric" e.g.: 1, '1', 1.1, '1.1')
- add "NumericString"-Collections (accepts "numeric" e.g.: '1', '1.1')
- fix "Float"-Collections (only accepts "float" now)
- add "FloatInt"-Collections (accepts "float" and "int")
- fix fatal error from "ArrayyRewindableExtendedGenerator"
- add more support for Generics + phpstan checks
- fix code style
- use Github Actions
- add more support for Generics + phpstan checks
- optimize Json Mapper with nested Arrayy elements
- add more support for Generics + phpstan checks
- use more Generators v3.1
- add more support for Generics + phpstan checks
- auto-generate the README
- fix some internal Generator usage
- add more support for Generics + phpstan checks
- use more Generators v3
- auto-generate the README
- use property type check for "Arrayy->unshift(...)"
- use more Generators v2
- auto-generate the README
- use more Generators
- auto-generate the README
- search for PhpDoc @property in parent classes -> this is working for "Arrayy" classes and "ArrayyMeta" classes
- add "prependImmutable()"
- add "appendImmutable()"
- add prefix for "implode()"
- use more Generators
- add more tests
- fix "offsetGet()" usage -> now e.g. $a['foo'] will return a reference instead of a new variable, so that we can overwrite the key of an array like this $a['foo']['counter'] += 1
- add support for "A->get('*.key)"
- add support for JSON-Mappings
- add "JsonSerializable"-Collection
- add "Callable"-Collections
- add "Object"-Collections
- add "Resource"-Collections
- add "Scalar"-Collections
- add & use "Arrayy->getGeneratorByReference()"
- update "phpdocumentor/reflection-docblock"
- fix "Arrayy->offsetUnset()" -> unset of non array values + fix phpdoc
- fix "Arrayy->merge*" -> now accepts also Arrayy elements in the array
- update "Arrayy->has()" -> now you can check multiple keys
- add "$key" for "Arrayy->clear()"
- add "Arrayy->flatten()"
- add "Arrayy->createFromArray()"
- fix check for "\Arrayy\collection()"
- use generics for "\Arrayy\array_first()" & "\Arrayy\array_last()"
- fix phpdoc from "toPermutation()"
- fix "@psalm-mutation-free" - via psalm
- fix generics support - via psalm
- more generics support - via psalm + phpstan
- add some more "Immutable" versions of sort methods
- fix "createFromObject()" -> will return static instead of self
- fix more phpdocs
- add "@psalm-mutation-free" - via psalm
- fix more phpdocs
- more generics support - via phpstan (>= 0.12)
- normalize $closure (value => key instead of key => value) for "forAll()"
- normalize $closure (value => key instead of key => value) for "partition()"
- rename "forAll()" into "validate()"
- use "iterator_count()" if possible
- add "nth()"
- add "toPermutation()"
- fix phpstan (0.12) generic support
- use phpstan (0.12) generic support
- split "InstanceCollection" into "InstancesCollection" && "InstanceCollection"
- instance of "InvalidArgumentException" we now use "TypeError" for type errors
- add "Arrayy->checkPropertiesMismatch"
- add pre-defined typified collections (TypeInterface)
- merge type check from Arrayy & Collection
- add "TypeCheckInterface"
- fix type checks
- fix serialization of "Arrayy" + "Property" (Property !== instance of ReflectionProperty anymore)
- fix for php 7.4 (ArrayObject use __serialize + __unserialize)
- fix "Arrayy->keys()" -> use strict and non-strict comparision
- optimize "array_last"-polyfill (php < 7.3)
- add "Arrayy->diffKey" + "Arrayy->diffKeyAndValue"
- add more test cases
- update "phpdocumentor/reflection-docblock"
- fix "array_first()" + "array_last()" (move from global namespace into Arrayy)
- fix return type of "Arrayy->internalGetArray()"
- add Arrayy->moveElementToFirstPlace()
- add Arrayy->moveElementToLastPlace()
- fix for php >= 7.3
-
add new array key functions + most value functions
-> "Arrayy->firstKey()", "Arrayy->lastKey()", "Arrayy->mostUsedValue()", "Arrayy->mostUsedValues()"
- Collection -> fix some string methods from the parent "Arrayy"-class
- AbstractCollection -> accept collections (self) as valid source + fix phpdoc
- add "keyExists()" / "delete()" / "pull()"
- "first()" / "last()" -> fix -> do not change the current array, if it's not needed
- "group()" / "sorter()" -> fix phpdoc
- "keys()" / "values()" -> optimize generator usage
- "replace()" -> fix immutable of the input
- "sizeIs()" / "sizeIsLessThan()" / "sizeIsGreaterThan()" / "sizeIsBetween()" -> added
- "invoke()" -> improve generator usage + fix phpdoc
- "map()" -> allow to use the key, in the callable + additional parameter
- "containsCaseInsensitive()" -> optimize for generator usage
- optimize performance from "Arrayy->unshift()"
- optimize performance from "Arrayy->push()"
- add a simple "Collection" implementation + function alias \Arrayy\collection()
- fix errors reported by phpstan (level 7)
- improve performance (use "dot-notation" internally only if needed)
- improve "dot-notation" handling for non "Arrayy" objects
- "AbstractCollection" -> optimize foreach usage
- "AbstractCollection" -> fix merge && where methods
- optimize property check in the constructor
- better support for PhpDoc @property checks
- allow callable<mixed, \Generator> as input (Arrayy::createFromGeneratorFunction())
- add a abstract "Collection" implementation
- "ramsey/array_column" is not needed anymore
- use autoloader also for the tests
- fix issue when requiring float types
- update phpcs fixer config
- update "require-dev"
- optimize the "constructor"
- use the "JsonSerializable" interface
- fix fallback for "this->shuffle()"
- use phpstan + fixes (level 5)
- use phpcs fixer
- replace "UTF8" with "mbstring" -> Warning: is you need the "UTF8" class, please add it separately in you composer.json -> "voku/portable-utf8": "~5.0"
- fix "checkForMissingPropertiesInConstructor" with arrays -> new parameter in the constructor
- fix internal "ArrayyIterator" handling
- use generators for for-each loops
- add "Arrayy->getGenerator()" + tests
- test the tests via "infection" (Mutation Code Coverage: 91%)
- optimize performance
- add "type checking for @property"
- add Arrayy->appendArrayValues()
- fix usage of set() with nested dot-notation
- add Arrayy->fillWithDefaults()
- fix usage of "count()" + COUNT_RECURSIVE if needed
-
update "Portable UTF8" from v4 -> v5
-> this is a breaking change without API-changes - but the requirement from "Portable UTF8" has been changed (it no longer requires all polyfills from Symfony)
- "php": ">=7.0"
- drop support for PHP < 7.0
- use "strict_types"
- add some pre- / append methods + tests
- add "Arrayy::createFromObjectVars()"
- fix internal __toString() / Arrayy->implode()
- fix in_array() usage for multidimensional array
- add flag-parameter for "Arrayy->filter()" + polyfill for old php versions (< 5.6 || HHVM)
- add "Arrayy->countValues()"-method
- fix "offsetGet() must be compatible with that of ArrayAccess::offsetGet()"
- more information via "InvalidArgumentException"
- re-use the "Arrayy->customSortKeys()"-method
- add more "sort"-methods + tests
- overwrite "ArrayObject"-methods
- dependency injection for the "Iterator" via __constructor
- fix serialize() + unserialize() -> we will process the object now, not only the array in the object
- add more tests
- add "Arrayy->changeKeyCase()" (with UTF-8 support)
- fix "StaticArrayy"-class -> return value from "repeat()" is always an instance of the "Arrayy"-class
- fix php-doc (for extended classes)
- add "Array->uniqueKeepIndex()"
- fix some more php-docs
- fix "matches()" and "matchesAny()" with empty-arrays
- fix usage of "isset() / array_key_exists()" and "array()$value / array($value)"
- fix some bugs with the magic __set // __get
- fix bug from Arrayy->get()
- "Recursively return new Arrayy objects" | thx @brad-jones
- Apply fixes from StyleCI
- add "Arrayy->moveElement()"
- add "Arrayy->containsKeys()"
- add "Arrayy->containsValues()"
- fix for PHP 5.3
- add Arrayy->divide()
- add Arrayy->swap()
- add Arrayy->stripEmpty()
- use new version of "portable-utf8" (3.0)
- add "containsCaseInsensitive()"
- add "isEqual()"
- add "isSequential()"
- add "Arrayy->diffRecursive()"
- use new "portable-utf8"-version
- fixed dot-notation
- merged doublicate functions
- use "Immutable & Mutable"-methods
- use the "ArrayAccess"-Interface
- try to fix for old php-versions
- add Arrayy->create()
- add Arrayy->flip()
- add Arrayy->reduce() | thx @formigone
- "Fixed Countable interface description" | thx @dvdmarchetti
- fixed Arrayy->mergePrependKeepIndex()
- fixed Arrayy->mergeAppendKeepIndex()
- add Arrayy->getColumn()
- use the "array_column()"-polyfill
- add Arrayy->randomWeighted()
- add Arrayy->split()
- replace "self" with "static"
- add Arrayy->isMultiArray()
- added some more documentation
- added some more doc's
- fixed "Arrayy->random()"
- return a "Arrayy"-object
- fixed "replaceValue()"
- rename "replaceValue()" -> into "replaceOneValue()"
- init