PHPackages                             lbhurtado/tactician - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. lbhurtado/tactician

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

lbhurtado/tactician
===================

Extending joselfonseca/laravel-tactician

v2.2.0(4y ago)01.3k↓80%2MITPHPPHP ~7.2||^8.0.1CI failing

Since May 19Pushed 4y ago1 watchersCompare

[ Source](https://github.com/lbhurtado/tactician)[ Packagist](https://packagist.org/packages/lbhurtado/tactician)[ Docs](https://github.com/lbhurtado/tactician)[ RSS](/packages/lbhurtado-tactician/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)Dependencies (5)Versions (11)Used By (2)

lbhurtado/tactician
===================

[](#lbhurtadotactician)

[![Latest Version on Packagist](https://camo.githubusercontent.com/c30590129371c2d4007a05e4ed176cbc3af814771f01de9b5fe1a22ef0c28e4b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c626875727461646f2f74616374696369616e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/lbhurtado/tactician)[![Build Status](https://camo.githubusercontent.com/1ddf64e0c1642ca8036dde93526ea53ace9354b0da2c5328a7acf80e67450c8d/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6c626875727461646f2f74616374696369616e2f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/lbhurtado/tactician)[![Quality Score](https://camo.githubusercontent.com/8874cc16f21dd4e2a7bc0d2be542e2a33a55e4320ab7a74026cd688352a1c206/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6c626875727461646f2f74616374696369616e2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/lbhurtado/tactician)[![Total Downloads](https://camo.githubusercontent.com/29ad7f1d76cf9e4a7cc50d386ad3afe73441d8143a07c8a01b0931d42339a118/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c626875727461646f2f74616374696369616e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/lbhurtado/tactician)

This is just an extension of joselfonseca/laravel-tactician package implementing the ActionAbstract class.

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

[](#installation)

You can install the package via composer:

```
composer require lbhurtado/tactician
```

Usage
-----

[](#usage)

```
use LBHurtado\Tactician\Classes\ActionAbstract;
use LBHurtado\Tactician\Contracts\ActionInterface;

class CreateSMSAction extends ActionAbstract implements ActionInterface
{
    protected $fields = ['from', 'to', 'message'];

    protected $command = CreateSMSCommand::class;

    protected $handler = CreateSMSHandler::class;

    protected $middlewares = [
        CreateSMSValidator::class,
        CreateSMSResponder::class,
    ];

    public function setup()
    {
        // TODO: Implement setup() method.
    }
}
```

```
use LBHurtado\Tactician\Contracts\CommandInterface;

class CreateSMSCommand implements CommandInterface
{
    public $from;

    public $to;

    public $message;

    public function __construct($from, $to, $message)
    {
        $this->from = $from;
        $this->to = $to;
        $this->message = $message;
    }

    public function getProperties():array
    {
        return [
            'from' => $this->from,
            'to' => $this->to,
            'message' => $this->message,
        ];
    }
}
```

```
use LBHurtado\Tactician\Contracts\CommandInterface;
use LBHurtado\Tactician\Contracts\HandlerInterface;

class CreateSMSHandler implements HandlerInterface
{
    protected $smss;

    public function __construct(SMSRepository $smss)
    {
        $this->smss = $smss;
    }

    public function handle(CommandInterface $command)
    {
        $this->smss->create([
            'from' => $command->from,
            'to' => $command->to,
            'message' => $command->message,
        ]);
    }
}
```

```
use League\Tactician\Middleware;

class CreateSMSResponder implements Middleware
{
    public function execute($command, callable $next)
    {
        $next($command);

        return (new CreateSMSResource($command))
            ->response()
            ->setStatusCode(200)
            ;
    }
}
```

### Testing

[](#testing)

```
composer test
```

### Changelog

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

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

[](#contributing)

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

### Security

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Lester Hurtado](https://github.com/lbhurtado)
- [All Contributors](../../contributors)

License
-------

[](#license)

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

Laravel Package Boilerplate
---------------------------

[](#laravel-package-boilerplate)

This package was generated using the [Laravel Package Boilerplate](https://laravelpackageboilerplate.com).

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 87.5% 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 ~118 days

Recently: every ~233 days

Total

10

Last Release

1488d ago

Major Versions

1.2.0 → v2.0.02020-11-22

PHP version history (3 changes)1.0.0PHP ^7.1

1.1.0PHP ^7.2

v2.1.0PHP ~7.2||^8.0.1

### Community

Maintainers

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

---

Top Contributors

[![lbhurtado](https://avatars.githubusercontent.com/u/5870664?v=4)](https://github.com/lbhurtado "lbhurtado (14 commits)")[![3neti](https://avatars.githubusercontent.com/u/89447696?v=4)](https://github.com/3neti "3neti (2 commits)")

---

Tags

tacticianlbhurtado

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/lbhurtado-tactician/health.svg)

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

###  Alternatives

[illuminate/pipeline

The Illuminate Pipeline package.

9446.6M213](/packages/illuminate-pipeline)[mrmarchone/laravel-auto-crud

Laravel Auto CRUD helps you streamline development and save time.

28711.8k2](/packages/mrmarchone-laravel-auto-crud)[interaction-design-foundation/laravel-geoip

Support for multiple Geographical Location services.

17221.0k3](/packages/interaction-design-foundation-laravel-geoip)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[bornfreee/tactician-domain-events-bundle

Bundle to integrate Tactician Domain Events library with Symfony project

10138.6k](/packages/bornfreee-tactician-domain-events-bundle)[jildertmiedema/laravel-tactician

Tactician for laravel 8+

105.0k](/packages/jildertmiedema-laravel-tactician)

PHPackages © 2026

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