PHPackages                             indigophp/doris - 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. [CLI &amp; Console](/categories/cli)
4. /
5. indigophp/doris

Abandoned → [league/tactician-bernard-queueing](/?search=league%2Ftactician-bernard-queueing)ArchivedLibrary[CLI &amp; Console](/categories/cli)

indigophp/doris
===============

Doris is a remote command bus implementation based on Bernard and Tactician

14PHP

Since Jan 12Pushed 11y ago1 watchersCompare

[ Source](https://github.com/indigophp-archive/doris)[ Packagist](https://packagist.org/packages/indigophp/doris)[ RSS](/packages/indigophp-doris/feed)WikiDiscussions develop Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

Doris
=====

[](#doris)

[![Latest Version](https://camo.githubusercontent.com/75a46d9c462704ec9736f580b941b1a5bc3d12bc1b89fb9a96649d1d63258e4b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f696e6469676f7068702f646f7269732e7376673f7374796c653d666c61742d737175617265)](https://github.com/indigophp/doris/releases)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Build Status](https://camo.githubusercontent.com/a60830482a80787a3a55a54a87ca5ca20b88812851c3afc8793cfd916b40d335/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f696e6469676f7068702f646f7269732e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/indigophp/doris)[![Code Coverage](https://camo.githubusercontent.com/ba005c747de609d486bdf939b7dacf6c7cad8d5e66ffc51ac9de19b37b9ebcc6/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f696e6469676f7068702f646f7269732e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/indigophp/doris)[![Quality Score](https://camo.githubusercontent.com/bbf9cce88b31c9c1f883289e089d5c86022450321cc44c43a72a2875c2bc83a4/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f696e6469676f7068702f646f7269732e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/indigophp/doris)[![HHVM Status](https://camo.githubusercontent.com/fc1fcb741cff65788c4a0c5970046cc4345d17804cb0612f182ab93902f89d4f/68747470733a2f2f696d672e736869656c64732e696f2f6868766d2f696e6469676f7068702f646f7269732e7376673f7374796c653d666c61742d737175617265)](http://hhvm.h4cc.de/package/indigophp/doris)[![Total Downloads](https://camo.githubusercontent.com/7bcefa1c6ebc2e41b02db6a78d226b49a595ae05c6371f0511bbff858a7c2489/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f696e6469676f7068702f646f7269732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/indigophp/doris)

**Doris is a remote command bus implementation based on [Bernard](http://bernardphp.com) and [Tactician](https://github.com/thephpleague/tactician).**

Install
-------

[](#install)

Via Composer

```
$ composer require indigophp/doris
```

Usage
-----

[](#usage)

Install Doris in both your application and (if you have any) dedicated worker package/instance.

You can run your consumer directly using your application, however you should avoid it if possible. Bootstrapping your application consumes more resource than necessary. (That said, sometimes it is simply easier.) In this case you have to make sure that you provide your consumer instance with all the data it needs: database connection details, required dependencies, etc.

### Remote execution

[](#remote-execution)

To send a command to it's destination, simply create a remote executing command bus, and use it like you would use any other:

```
use Doris\RemoteCommandBus;

// ...create a Bernard\Queue instance
// make sure to add te appropriate serializers

$commandBus = new RemoteCommandBus($queue);

$commandBus->execute($command);
```

### Consuming commands

[](#consuming-commands)

On the other side of the message queue you must set up a consumer:

```
use Doris\Consumer;
use Doris\Listener\CommandLimit;

// ... create your inner commandBus

$consumer = new Consumer;

// execute maximum of 10 commands
$consumer->addListener(new CommandLimit(10));

$consumer->consume($queue, $commandBus);
```

List of available listeners:

- `CommandLimit`: limits how many commands should be executed
- `TimeLimit`: limits how long the consumer can run
- `Wait`: wait for some time at the end of every cycle

Testing
-------

[](#testing)

```
$ phpspec run
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Credits
-------

[](#credits)

*Name refers to the film [Bernard and Doris](http://www.imdb.com/title/tt0470732/).*

- [Márk Sági-Kazár](https://github.com/sagikazarmark)
- [All Contributors](https://github.com/indigophp/doris/contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity41

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/0e4e105cea62b616d4cb376b08a849b6a428f646998537de150d16a8eb537b90?d=identicon)[mark.sagikazar](/maintainers/mark.sagikazar)

![](https://www.gravatar.com/avatar/1585b5a08e138e348f5b646231d0f16cb2eae06501fb9462bbc97a794d4de84a?d=identicon)[TamasBarta](/maintainers/TamasBarta)

---

Top Contributors

[![sagikazarmark](https://avatars.githubusercontent.com/u/1226384?v=4)](https://github.com/sagikazarmark "sagikazarmark (33 commits)")

### Embed Badge

![Health badge](/badges/indigophp-doris/health.svg)

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

###  Alternatives

[illuminate/console

The Illuminate Console package.

13046.0M6.5k](/packages/illuminate-console)[styleci/cli

The CLI tool for StyleCI

71470.5k9](/packages/styleci-cli)[winbox/args

Windows command-line formatter

20720.9k21](/packages/winbox-args)[tomatophp/filament-artisan

Simple but yet powerful library for running some artisan commands for FilamentPHP

3275.4k1](/packages/tomatophp-filament-artisan)

PHPackages © 2026

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