equip/structure

Simple, immutable data structures

1.1.0 2016-02-12 22:20 UTC

This package is auto-updated.

Last update: 2024-12-09 04:13:42 UTC


README

Latest Stable Version License Build Status Code Coverage Scrutinizer Code Quality Total Downloads

Provides a number of common data structures in Equip 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 equip/structure

License

The MIT License (MIT). Please see License File for more information.