timofiyprisyazhnyuk/chain-command-bundle

Symfony 扩展,实现命令链功能。

dev-master 2022-03-29 09:27 UTC

This package is auto-updated.

Last update: 2024-09-29 06:09:06 UTC


README

ChainCommandBundle 是一个实现命令链功能的 Symfony 扩展。应用中的其他 Symfony 扩展可以将其控制台命令注册为命令链的成员。当用户运行链中的主命令时,该链中注册的所有其他命令也应执行。注册为链成员的命令将不能再独立执行。

安装

###第 1 步

通过 composer

 composer require "timofiyprisyazhnyuk/chain-command-bundle": "*"

###第 2 步

将扩展添加到 "./config/bundles.php"

<?php

return [
    ...
    Timofiy\ChainCommandBundle\ChainCommandBundle::class => ['all' => true],
];

###第 3 步(可选)

如果您想使用 ChainCommandManager 服务动态命令链

  • 在 "./config/services.yaml" 中创建别名
Timofiy\ChainCommandBundle\Manager\ChainCommandManager: "@chain_command.manager"

用法

  1. 动态: "ChainCommandManager::putToChain"
   /**
     * Some constructor
     *
     * @param ChainCommandManager $chainCommandManager
     */
    public function __construct(private ChainCommandManager $chainCommandManager)
    {
        $this->chainCommandManager->putCommandToChain('root:command', 'member:command');
        parent::__construct();
    }
  1. 静态:在配置文件中指定链(在 "./config" 中)
timofiy_chain_command:
  detailed_logging: # is detailed logging enabled
    enabled: true
  chain_commands:
    foo:hello:  # root command name
      - bar:hi:  # member command name
          arguments: { }  # arguments: { "-arg": "value", "--argWithoutVal": ~, "key": 'example value' }
          sort_index: 16  # sort_index: int - for sorting member commands
      - bar:hi:
          arguments: { }
          sort_index: 12

演示

##您可以安装演示 symfony 扩展