PHPackages                             icecave/collections - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. icecave/collections

AbandonedArchivedLibrary[Queues &amp; Workers](/categories/queues)

icecave/collections
===================

A PHP collection library loosely inspired by the .NET runtime and the C++ STL.

1.1.0(12y ago)69139.0k↓28.9%2[13 issues](https://github.com/icecave/collections/issues)12MITPHPPHP &gt;=5.3

Since Jan 10Pushed 6y ago3 watchersCompare

[ Source](https://github.com/icecave/collections)[ Packagist](https://packagist.org/packages/icecave/collections)[ Docs](https://github.com/IcecaveStudios/collections)[ RSS](/packages/icecave-collections/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (16)Used By (12)

Collections
===========

[](#collections)

> **This project has been deprecated by the authors.**

**Collections** provides a set of collection types loosely inspired by the .NET runtime and the C++ standard template library.

- Install via [Composer](http://getcomposer.org) package [icecave/collections](https://packagist.org/packages/icecave/collections)
- Read the [API documentation](http://icecavestudios.github.io/collections/artifacts/documentation/api/)

Rationale
---------

[](#rationale)

PHP has long been lacking formal, performant collection types. The addition of the heap-centric collections to the SPL has gone some way to addressing this problem but has fallen short in some regards. For example, [SplDoublyLinkedList](http://www.php.net/manual/en/class.spldoublylinkedlist.php) does not expose some of the operations that linked lists are designed to solve efficiently, such as insertion and deletion operations in the middle of the collection. There are also several broken abstractions. One example is [SplQueue](http://php.net/manual/en/class.splqueue.php)which exposes methods for manipulating both the head and tail of the queue.

Concepts
--------

[](#concepts)

- [Collection](src/Icecave/Collections/CollectionInterface.php): A collection is an object that stores other objects (called elements).
- [Mutable Collection](src/Icecave/Collections/MutableCollectionInterface.php): A mutable collection is a collection on which elements can be added and removed.
- [Iterable](src/Icecave/Collections/IterableInterface.php): Iterable collections allow sequential access to the elements without modifying the collection.
- [Mutable Iterable](src/Icecave/Collections/MutableIterableInterface.php): An iterable collection that can be modified in place.
- [Sequence](src/Icecave/Collections/SequenceInterface.php): A sequence is a variable-sized collection whose elements are arranged in a strict linear order.
- [Mutable Sequence](src/Icecave/Collections/MutableSequenceInterface.php): A sequence that supports insertion and removal of elements.
- [Random Access Sequence](src/Icecave/Collections/RandomAccessInterface.php): A sequence that provides access to elements by position.
- [Mutable Random Access Sequence](src/Icecave/Collections/MutableRandomAccessInterface.php): A sequence that allows insertion &amp; removal of elements by position.
- [Associative Collection](src/Icecave/Collections/AssociativeInterface.php): A variable-sized collection that supports efficient retrieval of values based on keys.
- [Mutable Associative Collection](src/Icecave/Collections/MutableAssociativeInterface.php): An associative collection that supports insertion and removal of elements.
- [Queued Access](src/Icecave/Collections/QueuedAccessInterface.php): A F/LIFO buffer (ie, stacks and queues).
- [Set](src/Icecave/Collections/SetInterface.php): Un-ordered, iterable collection with unique elements.

Collections
-----------

[](#collections-1)

- [Vector](src/Icecave/Collections/Vector.php): A mutable sequence with efficient access by position and iteration.
- [LinkedList](src/Icecave/Collections/LinkedList.php): A mutable sequence with efficient addition and removal of elements.
- [Map](src/Icecave/Collections/Map.php): Associative collections with efficient access by key.
- [Set](src/Icecave/Collections/Set.php): Iterable collections with unique elements.
- [Queue](src/Icecave/Collections/Queue.php): A first-in/first-out (FIFO) queue of elements.
- [PriorityQueue](src/Icecave/Collections/PriorityQueue.php): A prioritized first-in/first-out (FIFO) queue of elements.
- [Stack](src/Icecave/Collections/Stack.php): A last-in/first-out (LIFO) stack of elements.

Iterators
---------

[](#iterators)

- [AssociativeIterator](src/Icecave/Collections/Iterator/AssociativeIterator.php): An iterator for iterating any associative collection.
- [RandomAccessIterator](src/Icecave/Collections/Iterator/RandomAccessIterator.php): An iterator for iterating any random access collection.
- [SequentialKeyIterator](src/Icecave/Collections/Iterator/SequentialKeyIterator.php): An iterator adaptor for producing sequential integer keys.

Serialization
-------------

[](#serialization)

The provided collection types support [serialization](http://au1.php.net/manual/en/function.serialize.php), so long as the elements contained within the collection are also serializable.

Cloning
-------

[](#cloning)

The provided collection implementations support [cloning](http://php.net/manual/en/language.oop5.cloning.php). Cloning a collection produces a copy of the collection containing the same elements. The elements themselves are not cloned.

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance16

Infrequent updates — may be unmaintained

Popularity43

Moderate usage in the ecosystem

Community22

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 96.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~34 days

Recently: every ~41 days

Total

13

Last Release

4458d ago

Major Versions

0.8.0 → 1.0.0-alpha.12013-10-20

PHP version history (3 changes)0.1.0PHP &gt;=5.3.0

0.5.1PHP &gt;=5.3.3

0.7.0PHP &gt;=5.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/93a71bd75fcd51efee464532dbdd54927cd00e938805998c76e0a804d38fa3fb?d=identicon)[jmalloc](/maintainers/jmalloc)

---

Top Contributors

[![jmalloc](https://avatars.githubusercontent.com/u/761536?v=4)](https://github.com/jmalloc "jmalloc (231 commits)")[![koden-km](https://avatars.githubusercontent.com/u/1037307?v=4)](https://github.com/koden-km "koden-km (7 commits)")[![ezzatron](https://avatars.githubusercontent.com/u/100152?v=4)](https://github.com/ezzatron "ezzatron (1 commits)")

---

Tags

containerarrayhashqueuestackmapcollectionsequence

### Embed Badge

![Health badge](/badges/icecave-collections/health.svg)

```
[![Health](https://phpackages.com/badges/icecave-collections/health.svg)](https://phpackages.com/packages/icecave-collections)
```

###  Alternatives

[ramsey/collection

A PHP library for representing and manipulating collections.

1.2k486.0M69](/packages/ramsey-collection)[phootwork/collection

The phootwork library fills gaps in the php language and provides better solutions than the existing ones php offers.

3924.8M15](/packages/phootwork-collection)[phpcollection/phpcollection

General-Purpose Collection Library for PHP

1.0k64.0M34](/packages/phpcollection-phpcollection)[aimeos/map

Easy and elegant handling of PHP arrays as array-like collection objects similar to jQuery and Laravel Collections

4.2k412.9k11](/packages/aimeos-map)[graze/data-structure

Data collections and containers

12287.4k8](/packages/graze-data-structure)[michaels/data-manager

Simple data manager for nested data, dot notation array access, extendability, and container interoperability.

121.9k2](/packages/michaels-data-manager)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
