PHPackages                             mahmud/buffered-queue - 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. mahmud/buffered-queue

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

mahmud/buffered-queue
=====================

A simple to use buffering queue as PHP package (no dependencies), which flexibly buffers objects, strings, integers etc. until a maximum size is reached

1.2.2(6y ago)140MITPHPPHP ^7.1.3CI failing

Since Nov 26Pushed 6y ago1 watchersCompare

[ Source](https://github.com/mahmudkuet11/Buffered-Queue)[ Packagist](https://packagist.org/packages/mahmud/buffered-queue)[ RSS](/packages/mahmud-buffered-queue/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (1)Versions (7)Used By (0)

Buffered Queue
==============

[](#buffered-queue)

[![Latest Stable Version](https://camo.githubusercontent.com/e1738b1fc522f64261ba1b4536364167e945c441c4ad05541f9a3db50f961532/68747470733a2f2f706f7365722e707567782e6f72672f6d61686d75642f62756666657265642d71756575652f762f737461626c65)](https://packagist.org/packages/mahmud/buffered-queue)[![Build Status](https://camo.githubusercontent.com/955a5dce41cf6146e865bcce5c57690ed7dac22f89113c835a5e8bd314bd701f/68747470733a2f2f7472617669732d63692e6f72672f6d61686d75646b75657431312f42756666657265642d51756575652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/mahmudkuet11/Buffered-Queue)[![License](https://camo.githubusercontent.com/129bac9e79b32817a41b0c854633604424b09dda166ea2b44d6fcc44f04b4169/68747470733a2f2f706f7365722e707567782e6f72672f6d61686d75642f62756666657265642d71756575652f6c6963656e7365)](https://packagist.org/packages/mahmud/buffered-queue)

A simple to use buffering queue as PHP package (no dependencies), which flexibly buffers objects, strings, integers etc. until a maximum size is reached

Installation
============

[](#installation)

Via Composer

`composer require mahmud/buffered-queue`

Usage
=====

[](#usage)

Basic usage
-----------

[](#basic-usage)

```
use Mahmud\BufferedQueue\BufferedQueue;

// Maximum size is 3
$queue = BufferedQueue::make('key', function($items){
    var_dump($items); // Output is mentioned below
}, 3);

$queue->push('item 1');
$queue->push('item 2');
$queue->push('item 3');
$queue->push('item 4');
$queue->push('item 5');
$queue->push('item 6');
$queue->push('item 7');

$queue->finish();

// Output

// First
[
    'item 1', 'item 2', 'item 3'
]

// Second
[
    'item 4', 'item 5', 'item 6'
]

// Third
[
    'item 7'
]
```

Also instance of `Mahmud\BufferedQueue\HandlerContract` can be passed.

```
use Mahmud\BufferedQueue\HandlerContract;

class QueueHandler implements HandlerContract {

    public function handle($items) {
        // Do something
    }
}

$queue = BufferedQueue::make('key', new QueueHandler, 3);
```

API
---

[](#api)

### make($key, $callback, $max\_size)

[](#makekey-callback-max_size)

```
BufferedQueue::make($key, $callback, $max_size);
```

- `$key` is a unique string. For duplicated key this will return same instance.

```
$queue1 = BufferedQueue::make('key1', $callback, $max_size);
$queue2 = BufferedQueue::make('key1', $callback, $max_size);

$queue1 === $queue2 // true
```

- `$callback` will receive array of items.
- `$max_size` determines the maximum size of the queue. When queue is full, callback is triggered with the buffered items.

### push($item)

[](#pushitem)

`$item` can be anything. object, string, integer, boolean, array etc...

```
$queue->push('item 1');
```

### finish()

[](#finish)

Trigger callback with buffered items at any time. Generally used after pushing all items.

### run()

[](#run)

Force to run the callback with buffered items at any time. After running the callback buffer will be empty.

### getItems()

[](#getitems)

Get all items in buffer.

Testing
=======

[](#testing)

`vendor/bin/phpunit`

License
-------

[](#license)

MIT license. Please see the [license file](license.md) for more information.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~5 days

Total

6

Last Release

2341d ago

Major Versions

0.1.0 → 1.0.02019-11-26

### Community

Maintainers

![](https://www.gravatar.com/avatar/affa0d5a77f5c7b7a780e9c758269b32aaaa82b39662fcbbe6f89314b64aca9a?d=identicon)[mahmud](/maintainers/mahmud)

---

Top Contributors

[![mahmudkuet11](https://avatars.githubusercontent.com/u/5725014?v=4)](https://github.com/mahmudkuet11 "mahmudkuet11 (2 commits)")

---

Tags

Buffered Queue

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mahmud-buffered-queue/health.svg)

```
[![Health](https://phpackages.com/badges/mahmud-buffered-queue/health.svg)](https://phpackages.com/packages/mahmud-buffered-queue)
```

###  Alternatives

[league/geotools

Geo-related tools PHP 7.3+ library

1.4k5.3M26](/packages/league-geotools)[enqueue/enqueue

Message Queue Library

19820.0M56](/packages/enqueue-enqueue)[deliciousbrains/wp-background-processing

WP Background Processing can be used to fire off non-blocking asynchronous requests or as a background processing tool, allowing you to queue tasks.

1.1k409.8k6](/packages/deliciousbrains-wp-background-processing)[react/async

Async utilities and fibers for ReactPHP

2228.8M171](/packages/react-async)[react/promise-stream

The missing link between Promise-land and Stream-land for ReactPHP

11512.9M45](/packages/react-promise-stream)[illuminate/bus

The Illuminate Bus package.

6043.8M409](/packages/illuminate-bus)

PHPackages © 2026

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