A small, flexible command bus. Handy for building service layers.

Installs: 3 457 345

Dependents: 143

Suggesters: 7

Security: 0

Stars: 754

Watchers: 32

Forks: 72

Open Issues: 2

2.0-rc1 2019-07-28 13:22 UTC

This package is auto-updated.

Last update: 2020-11-23 13:47:09 UTC


Travis CI Scrutinizer Code Quality Code Coverage Build Status MIT License SensioLabsInsight

A small, flexible command bus.

IMPORTANT: You're looking at the unreleased Tactician 2.0 code. See the original docs for info about 1.x versions.

See the full docs or the examples directory to get started.


Using Composer:

composer require league/tactician


The core Tactician package is small but there are several plugin packages that extend the usefulness of Tactician:

  • PHPStan: Add static analysis support to Tactician. Highly recommended.
  • Logger: Adds PSR-3 logging support for receiving, completing or failing commands.
  • Doctrine: Wraps commands in separate Doctrine ORM transactions.
  • and many more

Framework Integration

There are a number of framework integration packages for Tactician, search for Tactician on Packagist for the most up-to-date listings.


To run all unit tests, use the locally installed PHPUnit:

$ ./vendor/bin/phpunit


Tactician has no previous security disclosures and due to the nature of the project is unlikely to. However, if you're concerned you've found a security sensitive issue in Tactician or one of its related projects, please email disclosures [at] rosstuck dot com.


Please see CONTRIBUTING for details.