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

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

memcrab/queue
=============

PHP Queue Lib for Memcrab Core API

2.0.2(2y ago)011.0k↓31.3%[2 PRs](https://github.com/Memcrab/Queue/pulls)MITPHPPHP &gt;=8.0

Since Jun 15Pushed 1y ago3 watchersCompare

[ Source](https://github.com/Memcrab/Queue)[ Packagist](https://packagist.org/packages/memcrab/queue)[ Docs](http://memcrab.com)[ RSS](/packages/memcrab-queue/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (15)Used By (0)

Config Libriary for php 8.0 core package
========================================

[](#config-libriary-for-php-80-core-package)

Install
-------

[](#install)

`composer require memcrab/queue`

require\_once **DIR** . "/needle\_path/vendor/autoload.php";

use Memcrab\\Queue; use Memcrab\\Queue\\SQS; use Memcrab\\Queue\\RMQ;

SQS Client
----------

[](#sqs-client)

For starting use SQS Client we need to create a connection to the server like this. Create an instance of SQS and use 2 methods - setConnectionProperties() connect().

$connection = new SQS; $connection-&gt;setConnectionProperties(array $properties); $connection-&gt;connect();

Method setConnectionProperties(array $properties) - you must get region, credentials from your profile ($key and $secret), version,
for example:

$connection-&gt;setConnectionProperties(\['region' =&gt; 'us-west-2', 'key' =&gt; 'your\_aws\_access\_key\_id', 'secret' =&gt; 'your\_aws\_secret\_access\_key', 'version' =&gt; '2022-11-05'\]);

Next we must declare a queue:

$connection-&gt;registerQueue('queue\_name');

The method also have optional parameter $attibutes - array, where we can use:

- DelaySeconds (default 0),
- MaximumMessageSize (default 262.144 - 256KiB),
- MessageRetentionPeriod (default 345.600 - 4 days),
- Policy,
- ReceiveMessageWaitTimeSeconds (default 0),
- RedrivePolicy,
- VisibilityTimeout (default 30),
- KmsMasterKeyId,
- KmsDataKeyReusePeriodSeconds (default 300),
- SqsManagedSseEnabled,
- FifoQueue (default false),
- ContentBasedDeduplication (default false)

If we need to change message's visability, we can use:

$connection-&gt;changeMessageVisibility('queue\_name', \['messages'\], 10), where 10 - needle visibility timeout.

To check connection:

$connection-&gt;connectionStatus();

To get list of all queues:

$connection-&gt;getListOfQueues();

To send message:

$connection-&gt;sendMessage('queue\_name', \[message\_body\]);

We can add optional parameters:

- $attributes (array with BinaryListValues, BinaryValue, DataType, StringListValues and StringValue),
- $delaySeconds (default 10)

To receive message:

$connection-&gt;receiveMessage('queue\_name');

To delete message fron queue:

$connection-&gt;deleteMessage('queue\_name', \['message'\]);

To get queue's url:

$connection-&gt;getQueueUrl('queue\_name');

If you need close connection, use:

$connection-&gt;shutdown();

RabbitMQ Client
---------------

[](#rabbitmq-client)

For starting use RabbitMQ Client we need to create a connection to the server like this. Create an instance of RMQ and use 2 methods - setConnectionProperties() and connect().

$connection = new RMQ; $connection-&gt;setConnectionProperties(array $properties); $connection-&gt;connect();

Method setConnectionProperties(array $properties) - you must get hostname, port, username and password, for example:

$connection-&gt;setConnectionProperties(\['host' =&gt; 'localhost', 'port' =&gt; '5672', 'username' =&gt; 'guest', 'password' =&gt; 'guest'\]);

Next the library will create a channel and we must declare a queue:

$connection-&gt;registerQueue('queue\_name');

The method also have optional parameters like:

- $passive (true or false, default false),
- $durable (true or false, default false),
- $exclusive (true or false, default false),
- $auto\_delete (true or false, default false) You can use these parameters like:

$connection-&gt;registerQueue('queue\_name', false, true, false, false);

Also we can create an exchange like:

$connection-&gt;registerExchange('exchange\_name', 'direct');

The method also have optional parameters like:

- $type ('direct', 'topic', 'fanout', 'header'),
- $passive (true or false, default false),
- $durable (true or false, default false),
- $auto\_delete (true or false, default false) You can use these parameters like:

$connection-&gt;registerExchange('exchange\_name', 'direct', true, true, false);

To check connection:

$connection-&gt;connectionStatus();

To send message:

$connection-&gt;sendMessage('queue\_name', \[message\_body\]);

You can create third parameter - 'exchange\_name', if you need it.

To receive message:

$connection-&gt;receiveMessage('queue\_name');

The method also have optional parameters like:

- $consumer\_tag (default ''),
- $no\_local (true or false, default false),
- $no\_ack (true or false, default false),
- $exclusive (true or false, default false),
- $nowait (true or false, default false),
- $callback (default null, there could be an anonymous function or the name of an existing function) You can use these parameters like:

$connection-&gt;receiveMessage('queue\_name', 'consumer\_tag', true, false, true, 'my\_function');

If you need to tell the exchange to send messages fron the queue, we can create the relationship between them like this:

$connection-&gt;queueBind('queue\_name', 'exchange\_name', 'routing\_key');

If you need close channel and connection, use:

$connection-&gt;shutdown();

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 60.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 ~45 days

Recently: every ~113 days

Total

11

Last Release

975d ago

Major Versions

1.3.0 → 2.0.02022-07-04

### Community

Maintainers

![](https://www.gravatar.com/avatar/796d3f8f9559efb1274cdced887fdee9d259b0fdb60cef468bdc6674864d77bf?d=identicon)[Memcrab](/maintainers/Memcrab)

---

Top Contributors

[![oleksandr-diudiun](https://avatars.githubusercontent.com/u/2369309?v=4)](https://github.com/oleksandr-diudiun "oleksandr-diudiun (17 commits)")[![altername1](https://avatars.githubusercontent.com/u/104692778?v=4)](https://github.com/altername1 "altername1 (7 commits)")[![yaroshrostyslav](https://avatars.githubusercontent.com/u/25684704?v=4)](https://github.com/yaroshrostyslav "yaroshrostyslav (4 commits)")

---

Tags

phpawsqueuerabbitmqsqslibmemcrabAMQPLib

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[dusterio/laravel-aws-worker

Run Laravel (or Lumen) tasks and queue listeners inside of AWS Elastic Beanstalk workers

3105.7M](/packages/dusterio-laravel-aws-worker)[shiftonelabs/laravel-sqs-fifo-queue

Adds a Laravel queue driver for Amazon SQS FIFO queues.

1556.0M3](/packages/shiftonelabs-laravel-sqs-fifo-queue)[dusterio/laravel-plain-sqs

Custom SQS connector for Laravel that supports custom format JSON

1352.7M1](/packages/dusterio-laravel-plain-sqs)

PHPackages © 2026

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