Tactician
A small, flexible command bus
Install / Use
/learn @thephpleague/TacticianREADME
Tactician
A small, pluggable command bus.
See the full docs or the examples directory to get started.
Install
Using Composer:
composer require league/tactician
Plugins
The core Tactician package is small but there are several plugin packages that extend the usefulness of Tactician:
- Logger: Adds PSR-3 logging support for receiving, completing or failing commands.
- Container: Lazy load handlers from any container implementing container-interop.
- Doctrine: Wraps commands in separate Doctrine ORM transactions.
- Bernard: Allows queuing your commands in the background, using the Bernard Queuing library.
- Command Events: Fires events for all major moments in the command life-cycle.
- Locking: Only allows one command to be executed at a time.
- 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.
Testing
To run all unit tests, use the locally installed PHPUnit:
$ ./vendor/bin/phpunit
Security
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.
Contributing
Please see CONTRIBUTING for details.
Related Skills
node-connect
349.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。




