romaindesajardim / broadway-generator-bundle
此扩展包为您生成代码
Requires
- broadway/broadway-bundle: ~0.1
- sensio/generator-bundle: ^3.1.4
- symfony/serializer: ~2.7|~3.0
Requires (Dev)
- symfony/phpunit-bridge: ^3.3
This package is not auto-updated.
Last update: 2024-09-21 03:11:47 UTC
README
BroadwayGeneratorBundle
此扩展包为Broadway提供了一些symfony命令,用于生成命令、事件、读取模型等。
此扩展包深受SensioGeneratorBundle的启发。
安装
使用composer安装
composer require romaindesajardim/broadway-generator-bundle
并将其添加到您的 AppKernel.php
new RomainDeSaJardim\Bundle\BroadwayGeneratorBundle\BroadwayGeneratorBundle(),
功能
目前只有一个可用的命令。更多命令即将推出...
Broadway 命令
此命令会自动生成一个Broadway命令并实现Broadway命令处理器的handle方法。您只需添加您的参数并编写处理器。
php bin/console rdsj:broadway:generate-command
⚠️ 如果您使用Symfony 2,请使用 app/console
而不是 bin/console
此命令需要3个输入
bundle
(Broadway命令将被生成的Bundle名称)name
(您想要的Broadway命令名称)command-handler
可选 (处理Broadway命令的命令处理器的服务ID)
默认情况下,命令以交互模式运行,并询问以确定这些输入的值
但如果你愿意,你可以以非交互模式运行命令并提供所需的输入
php bin/console rdsj:broadway:generate-command --no-interaction FooBarBundle FooBar [foo.bar-handler]
示例
假设我有一个Broadway命令处理器 FooBarBundle\FooBarCommandHandler
通过一个Symfony服务链接
<service id="foo.bar.command_handler" class="FooBarBundle\FooBarCommandHandler">
<tag name="command_handler"/>
</service>
并且我想在同一个Bundle(FooBarBundle
)中创建一个名为 FooBar
的Broadway命令
因此,在非交互模式下,我必须运行此命令
php bin/console rdsj:broadway:generate-command --no-interaction FooBarBundle FooBar foo.bar.command_handler
结果将是
一个新的文件 Command\FooBarCommand.php
<?php
namespace FooBarBundle\Command;
class FooBarCommand
{
private $uuid;
public function __construct($uuid)
{
$this->uuid = $uuid;
}
public function getUUID()
{
return $this->uuid;
}
}
以及在我的命令处理器 FooBarCommandHandler.php
的末尾添加一个新的handle方法
public function handleFooBar(FooBarCommand $command)
{
// @TODO Insert your code here
}
Broadway 事件
此命令会自动生成一个Broadway事件并实现Broadway投影器的handle方法。您只需添加您的参数并编写处理器。
php bin/console rdsj:broadway:generate-event
⚠️ 如果您使用Symfony 2,请使用 app/console
而不是 bin/console
此命令需要3个输入
bundle
(Broadway命令将被生成的Bundle名称)name
(您想要的Broadway命令名称)projector
可选 (处理Broadway事件的投影器的服务ID)
默认情况下,命令以交互模式运行,并询问以确定这些输入的值
但如果你愿意,你可以以非交互模式运行命令并提供所需的输入
php bin/console rdsj:broadway:generate-command --no-interaction FooBarBundle FooBar [foo.bar-projector]
示例
与Broadway命令相同
Broadway 读取模型
此命令会自动生成一个Broadway读取模型并将其添加到您Bundle的服务配置中。您只需添加您的参数并编写读取模型。
php bin/console rdsj:broadway:generate-readmodel
⚠️ 如果您使用Symfony 2,请使用 app/console
而不是 bin/console
此命令需要3个输入
bundle
(Broadway命令将被生成的Bundle名称)name
(您想要的Broadway命令名称)service-filename
可选 _(服务文件名是配置您Bundle服务的文件名称)
默认情况下,命令以交互模式运行,并询问以确定这些输入的值
但如果你愿意,你可以以非交互模式运行命令并提供所需的输入
php bin/console rdsj:broadway:generate-readmodel --no-interaction FooBarBundle FooBar [services.xml]
示例
php bin/console rdsj:broadway:generate-readmodel --no interaction FooBarBundle FooBar services.xml
此命令会生成如下读取模型
<?php
namespace FooBarBundle\ReadModel;
use Broadway\ReadModel\Identifiable;
class FooBarReadModel implements Identifiable
{
private $id;
public function __construct($id)
{
$this->id = $id;
}
public function getId()
{
return $this->id;
}
}
并将 service.xml
转换为
<?xml version="1.0"?>
<response xmlns="https://symfony.com.cn/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://symfony.com.cn/schema/dic/services https://symfony.com.cn/schema/dic/services/services-1.0.xsd">
<services>
<defaults public="false"/>
</services>
</response>
in
<?xml version="1.0"?>
<response xmlns="https://symfony.com.cn/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://symfony.com.cn/schema/dic/services https://symfony.com.cn/schema/dic/services/services-1.0.xsd">
<services>
<defaults public="false"/>
<service id="toto.readmodel" class="Broadway\ReadModel\ReadModel">
<factory method="create" service="broadway.read_model.repository_factory"/>
<argument>toto.readmodel</argument>
<argument>AppBundle\ReadModel\TotoReadModel</argument>
</service>
</services>
</response>
以便配置新的读取模型服务
TODO
- 添加一个命令以在投影器、处理器或叙事中应用或处理事件
- 添加一个生成Broadway事件的命令
- 添加一个生成Broadway读取模型的命令
- 添加一个生成Broadway命令处理器的命令
- 在创建Broadway命令时自动生成处理器(如果不存在)
- 向Broadway命令添加字段以添加字段并实现getter
报告问题或功能请求
如果您觉得某个新问题或功能请求尚未存在或不在待办列表中(针对功能请求),您完全可以直接报告
贡献
您可以直接打开拉取请求