PHPackages                             evaneos/hector-bundle - 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. evaneos/hector-bundle

AbandonedArchivedSymfony-bundle[Queues &amp; Workers](/categories/queues)

evaneos/hector-bundle
=====================

AMQP wrapper of php C extension in order to easily manipulate connection, channel, queue and exchange

1.0.0(10y ago)0155MITPHPPHP &gt;=5.5

Since Jan 15Pushed 10y ago17 watchersCompare

[ Source](https://github.com/Evaneos/HectorBundle)[ Packagist](https://packagist.org/packages/evaneos/hector-bundle)[ Docs](https://github.com/evaneos/hector)[ RSS](/packages/evaneos-hector-bundle/feed)WikiDiscussions master Synced 2mo ago

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

Hector Bundle
-------------

[](#hector-bundle)

[![Build Status](https://camo.githubusercontent.com/7e810ff78fdd768b12663412670ee443b4190dfa1ae9104eb1aa14dce07a97c4/68747470733a2f2f7472617669732d63692e6f72672f4576616e656f732f486563746f7242756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/Evaneos/HectorBundle)

Symfony Bundle for [Hector](https://github.com/Evaneos/Hector)

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

[](#installation)

```
composer require evaneos\hector-bundle
```

```
    public function registerBundles()
    {
        $bundles = array(
			...
            new Evaneos\HectorBundle\HectorBundle()
        );
    }
```

Configuration
-------------

[](#configuration)

```
hector:
    connections:
        default:
            host: %amqp.host%
            port: %amqp.port%
            login: %amqp.login%
            password: %amqp.password%
            vhost: %amqp.vhost%
            read_timeout: %amqp.read_timeout%
            write_timeout: %amqp.write_timeout%
            connect_timeout: %amqp.connect_timeout%
    exchanges:
        bill:
            flags: 2 #durable
            type: "topic"
            queues:
                bill.process:
                    flags: 2 #durable
                    routing_key: "process"
                bill.process_dropped:
                    flags: 2 #durable
                    routing_key: "bill.dropped"
                bill.logger:
                    flags: 2 #durable
                    routing_key: "event_bus.bill.*"
        bill.delayed:
            flags: 2 #durable
            type: "topic"
            queues:
                bill.process_retry_5:
                    flags: 2 #durable
                    routing_key: "process.retry.5"
                    arguments:
                        x-message-ttl: 300000
                        x-dead-letter-exchange: "bill.delayed"
                        x-dead-letter-routing-key: "process.retry.10"
                bill.process_retry_10:
                    flags: 2 #durable
                    routing_key: "process.retry.10"
                    arguments:
                        x-message-ttl: 600000
                        x-dead-letter-exchange: "bill.delayed"
                        x-dead-letter-routing-key: "process.retry.30"
            	bill.process_retry_30:
                    flags: 2 #durable
                    routing_key: "process.retry.30"
                    arguments:
                        x-message-ttl: 1800000
                        x-dead-letter-exchange: "bill.delayed"
                        x-dead-letter-routing-key: "process.retry.60"
                bill.process_retry_60:
                    flags: 2 #durable
                    routing_key: "process.retry.60"
                    arguments:
                        x-message-ttl: 3600000
                        x-dead-letter-exchange: "bill.delayed"
                        x-dead-letter-routing-key: "process.retry.60"
                bill.process_retry_360:
                    flags: 2 #durable
                    routing_key: "process.retry.360"
                    arguments:
                        x-message-ttl: 21600000
                        x-dead-letter-exchange: "bill"
                        x-dead-letter-routing-key: "process.dropped"
```

Publisher
---------

[](#publisher)

```
services:
    evaneos.bill.publisher:
        class: 'Evaneos\Hector\Publisher\Publisher'
        tags:
            - { name: "hector.publisher", exchange: "bill" }

    evaneos.bill_delayed.publisher:
        class: 'Evaneos\Hector\Publisher\Publisher'
        tags:
            - { name: "hector.publisher", exchange: "bill.delayed", routing_key_prefix: "bill.retry." }
```

```
$publisher = $container->get('evaneos.bill.publisher');
$publisher->publish(json_encode(['bill']), 'process');
```

Consumer
--------

[](#consumer)

```
services:
    evaneos.bill.consumer:
        class: 'Evaneos\Hector\Consumer\Consumer'
        tags:
            - { name: "hector.consumer", exchange: "bill", queue: "bill.process" }

    evaneos.webhook.consumer:
        class: 'Evaneos\Hector\Consumer\Consumer'
        tags:
            - { name: "hector.consumer", exchange: "bill", queue: "bill.logger" }
```

```
$consumer = $container->get('evaneos.bill.consumer');
$consumer->initialize();

/* @var AMQPQueue $queue */
$queue = $this->consumer->getQueue()->getWrappedQueue();

//$queue->get();
//$queue->consume(function(AMQPEnveloppe $message){});
// $this->reactConsumer = new Consumer($queue, $this->loop, 0.1, 10);
```

Utils
-----

[](#utils)

Run test

```
composer test
```

Run CS fixer

```
composer cs
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity58

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

Unknown

Total

1

Last Release

3768d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2697e85bca7c41cb6166cf78dca3156bdbbe7950189f0b958115201dcd9a919a?d=identicon)[ProPheT777](/maintainers/ProPheT777)

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

---

Top Contributors

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

---

Tags

symfonybundlewrapperAMQP

### Embed Badge

![Health badge](/badges/evaneos-hector-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/evaneos-hector-bundle/health.svg)](https://phpackages.com/packages/evaneos-hector-bundle)
```

###  Alternatives

[php-amqplib/rabbitmq-bundle

Integrates php-amqplib with Symfony &amp; RabbitMq. Formerly emag-tech-labs/rabbitmq-bundle, oldsound/rabbitmq-bundle.

1.3k20.1M65](/packages/php-amqplib-rabbitmq-bundle)[prooph/event-store-symfony-bundle

109253.5k8](/packages/prooph-event-store-symfony-bundle)[ufo-tech/json-rpc-bundle

The bundle for easy using json-rpc api on your project

224.6k3](/packages/ufo-tech-json-rpc-bundle)

PHPackages © 2026

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