Skip to content
forked from equip/structure

Simple, immutable data structures

License

Notifications You must be signed in to change notification settings

pagely/structure

 
 

Repository files navigation

Pagely Structure

This is a fork of equip/structure, updated for PHP8 compatability

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 7.4
  • PHP 8.0

Install

Via Composer

$ composer require pagely/structure

License

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