clearcode / command-bus-console
命令总线命令行界面。
v0.2.0
2015-12-11 09:45 UTC
Requires
- php: >=5.6
- matthiasnoback/symfony-console-form: ^1.2
- nesbot/carbon: ^1.21
- ramsey/uuid: ~3.0
- simple-bus/symfony-bridge: ^4.1
- symfony/framework-bundle: ~2.5
- symfony/yaml: ~2.5
Requires (Dev)
- behat/behat: ^3.0
- phpunit/phpunit: ~4.0
- satooshi/php-coveralls: ^0.6.1
- symfony/class-loader: ~2.1
- symfony/finder: ~2.5
- symfony/validator: ~2.5
- symfony/var-dumper: ~2.5
This package is not auto-updated.
Last update: 2024-09-14 18:04:20 UTC
README
命令总线控制台
命令总线控制台是一个将命令总线功能暴露给命令行界面的包。命令总线控制台基于 Symfony Console Form 和 https://github.com/SimpleBus。
安装
$ composer require clearcode/command-bus-console
在您的Symfony应用程序的内核中启用束。
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new SimpleBusCommandBusBundle(), // this one you probably have already registered new SymfonyConsoleFormBundle(), new Clearcode\CommandBusConsole\Bundle\CommandBusConsoleBundle(), ); }
用法
为您的命令创建和注册表单类型。
假设您已经有了一个命令类及其处理器类,创建一个表单类型类,将您的命令属性映射到它
class SignUpType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('id', TextType::class, [ 'label' => 'Id', ]) ->add('name', TextType::class, [ 'label' => 'Name', ]) ->add('email', TextType::class, [ 'label' => 'email', ]) ; } public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults([ 'data_class' => SignUp::class, ]); } ... }
并使用 command_bus.type
注册您的表单类型,需要属性 command
,它是您的命令的完全限定名称(FQCN),以及 alias
,它将用于将控制台命令注册为名为 command-bus:alias
的名称。
form_type_service_id: class: Fully\Qualified\Class\Name\Of\SignUpType tags: - { name: form.type } - { name: command_bus.type, command: Fully\Qualified\Class\Name\Of\SignUp, alias: sign-up }
以交互模式运行命令
$ bin/console command-bus:sign-up Id: Name: email: [2015-12-11 10:34:55] The Fully\Qualified\Class\Name\Of\SignUp executed with success.
以非交互模式运行命令
$ bin/console command-bus:alias-for-command --no-interaction --id=1 --name=John --email=john@doe.com [2015-12-11 10:34:55] The Fully\Qualified\Class\Name\Of\SignUp executed with success.
待办事项
- 所有字段都是必需的
- 动态生成表单类型
- 添加对通过
__construct
实例化命令对象的支持 - 添加使用任何命令总线实现的可能
- 在命令总线上引入抽象
许可证
MIT,见 LICENSE。