minormous / structure
Simple, immutable data structures
Requires
- php: >=8.3
Requires (Dev)
- phpunit/phpunit: ^11.0
Replaces
- destruktphp/destrukt: 1.0.0
- shadowhand/destrukt: 1.0.0
This package is auto-updated.
Last update: 2024-12-12 22:18:59 UTC
README
Provides a number of common data structures in Minormous that are not natively supported by PHP. Each structure is represented by an immutable object that can be counted and serialized to JSON. All of the structures can be used as iterators and arrays, but cannot be modified using array functions.
For more information, see the documentation.
This package is compliant with PSR-1, PSR-2, and PSR-4. If you notice compliance oversights, please send a patch via pull request.
Structures
Dictionary
is an implementation of a associative array that
stores values identified by a key. Only associative arrays can be used to
initialize the structure. Any value can be defined by a string key.
SortedDictionary
is an implementation of a associative array
that also sorts the array. When the dictionary is modified it will be sorted.
By default the asort
function is used.
OrderedList
is an implementation of a list that stores ordered
values. Only an indexed array can be used to initialize the structure. Any value
can be added. When the list is modified it will be sorted. By default the
sort
function will be used.
UnorderedList
is an implementation of a list that stores
unordered values. The same value may appear more than once. Only an indexed array
can be used to initialize the structure. Any value can be added.
Set
is an implementation of a set that stores a unique values.
The same value will not appear more than once. Only an indexed array can be used
to initialize the structure. Adding an existing value to the set will have no effect.
A set also also be added to before or after an existing element.
Requirements
The following versions of PHP are supported.
- PHP 5.5
- PHP 5.6
- PHP 7.0
- HHVM
Install
Via Composer
$ composer require minormous/structure
License
The MIT License (MIT). Please see License File for more information.