PHPackages                             bozerkins/php-message-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. bozerkins/php-message-queue

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

bozerkins/php-message-queue
===========================

Simple message queue on php using files

v0.1.2(8y ago)7384[5 issues](https://github.com/bozerkins/php-message-queue/issues)MITPHP

Since Mar 5Pushed 8y ago3 watchersCompare

[ Source](https://github.com/bozerkins/php-message-queue)[ Packagist](https://packagist.org/packages/bozerkins/php-message-queue)[ RSS](/packages/bozerkins-php-message-queue/feed)WikiDiscussions master Synced yesterday

READMEChangelog (4)Dependencies (3)Versions (5)Used By (0)

PHP Message Queue
=================

[](#php-message-queue)

A simple php implementation of message queue (or message queue) which can write messages and read messages in a FIFO manner.

[![Build Status](https://camo.githubusercontent.com/65528b6099a8fff31f1462b1a99cf89ad9dbf118df6b1e9e125365c76f88b389/68747470733a2f2f7472617669732d63692e6f72672f626f7a65726b696e732f7068702d6d6573736167652d71756575652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/bozerkins/php-message-queue)[![MIT Licence](https://camo.githubusercontent.com/fabb40ab22588a0746bb0916ed92739171bde7fb31f281c627aa588bcba62cc2/68747470733a2f2f6261646765732e66726170736f66742e636f6d2f6f732f6d69742f6d69742e7376673f763d313033)](https://opensource.org/licenses/mit-license.php)

Installation
------------

[](#installation)

```
composer require bozerkins/php-message-queue
```

Creating a queue
----------------

[](#creating-a-queue)

To define a queue you first need to define some environment configurations. An environment of a queue messaging system defined what folders will be used for operations.

```
$queue = new \MessageQueue\Queue(
    new \MessageQueue\Environment(
        [
            'dir' => '/var/my-queue-folder',
            'queue' => 'my-queue'
        ]
    )
);
```

You can write to queue and read from queue. These are the basic operations.

> NOTE that you can use this with multiple processes. The Message Queue uses flock(), so there shouldn't be a problem.

```
# write two messages
$queue->write(
    [
        'my message',
        'my second message'
    ]
);

# read two messages
print_r($queue->read(2));
```

For several optimization reasons the queue does not delete messages by itself. To free some disk space from already read messages just run this command from time to time. Please note that this operation is disk write heavy (when lot's of messages are being passed)

```
$queue->recycle();
```

To optimize reads from the queue the library uses a caching construction. Messages are added into file system based cache in chunks, by default single chunk size is 100 messages. If you intend to read more than 100 messages from the queue at once please change the configuration option 'rotate\_amount' to a bigger number.

```
$queue = new \MessageQueue\Queue(
    new \MessageQueue\Environment(
        [
            'dir' => '/var/my-queue-folder',
            'queue' => 'my-queue',
            'rotate_amount' => 200
        ]
    )
);
```

Contacts
--------

[](#contacts)

If you wish to improve the library, feel free to submit merge request or contact me at

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance6

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 76.5% 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 ~46 days

Total

4

Last Release

3266d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5130614?v=4)[Bogdan](/maintainers/bozerkins)[@bozerkins](https://github.com/bozerkins)

---

Top Contributors

[![bozerkins](https://avatars.githubusercontent.com/u/5130614?v=4)](https://github.com/bozerkins "bozerkins (26 commits)")[![pomaxa](https://avatars.githubusercontent.com/u/426649?v=4)](https://github.com/pomaxa "pomaxa (5 commits)")[![teresko](https://avatars.githubusercontent.com/u/752652?v=4)](https://github.com/teresko "teresko (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bozerkins-php-message-queue/health.svg)

```
[![Health](https://phpackages.com/badges/bozerkins-php-message-queue/health.svg)](https://phpackages.com/packages/bozerkins-php-message-queue)
```

###  Alternatives

[symfony/form

Allows to easily create, process and reuse HTML forms

2.8k158.7M3.3k](/packages/symfony-form)[symfony/rate-limiter

Provides a Token Bucket implementation to rate limit input and output in your application

27051.7M257](/packages/symfony-rate-limiter)[swarrot/swarrot

A simple lib to consume RabbitMQ queues

3664.4M8](/packages/swarrot-swarrot)[sroze/messenger-enqueue-transport

Enqueue adapter for Symfony Messenger component

2008.9M4](/packages/sroze-messenger-enqueue-transport)[symfony/ldap

Provides a LDAP client for PHP on top of PHP's ldap extension

1367.9M56](/packages/symfony-ldap)[mmoreram/gearman-bundle

Adds gearman support to your and Symfony4, Symfony5 project

237398.0k2](/packages/mmoreram-gearman-bundle)

PHPackages © 2026

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