akmaks/command-chaining-bundle

Bundle provides some functional for calling console commands in chain

Installs: 23

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Type:symfony-bundle

dev-master 2021-05-25 22:26 UTC

This package is auto-updated.

Last update: 2024-10-26 06:23:04 UTC


README

Bundle provides some functional for calling console commands in chain

Installation

  1. Install package
composer require akmaks/command-chaining-bundle
  1. Create file config/packages/akmaks_command_chaining.yaml and configure your chains
parameters:
    chains:
        App\UI\Console\FirstMainCommand:
            - App\UI\ConsoleSecondCommand
            - App\UI\ConsoleThirdCommand
            - App\UI\ConsoleSecondCommand
        App\UI\Console\SecondMainCommand:
            - App\UI\ConsoleSecondCommand
            - App\UI\ConsoleThirdCommand
            - App\UI\ConsoleSecondCommand
  1. Implements CommandChainingInterface in chain commands

For master commands:

class CreateCommand extends Command implements CommandChainingInterface
...
    public function isMasterCommand(): bool
    {
        return true;
    }

For chain commands:

class ConsoleSecondCommand extends Command implements CommandChainingInterface
...
    public function isMasterCommand(): bool
    {
        return false;
    }
...
  1. Check result:
bin/console app:first:main
[2021-05-25 21:07:25]: app:first:main is a master command of a command chain that has registered member commands
[2021-05-25 21:07:25]: app:first:second, app:first:third, app:first:second: are registered as a members of app:first:main command chain
[2021-05-25 21:07:25]: Executing app:first:main command itself first
[2021-05-25 21:07:25]: Executing app:first:main chain members
[2021-05-25 21:07:25]: Execution of app:first:main chain completed