becklyn/ddd-generator-bundle

Becklyn DDD 框架中常见领域驱动设计模式的代码生成器。

安装量: 3,974

依赖关系: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 1

类型:symfony-bundle

2.2.1 2022-01-18 14:55 UTC

This package is auto-updated.

Last update: 2024-09-18 20:38:53 UTC


README

请确保全局安装了 Composer,如 Composer 文档中的安装章节所述。

使用 Symfony Flex 的应用程序

打开命令行控制台,进入您的项目目录并执行

 composer require becklyn/ddd-generator-bundle --dev

未使用 Symfony Flex 的应用程序

步骤 1:下载 Bundle

打开命令行控制台,进入您的项目目录,并执行以下命令以下载此 Bundle 的最新稳定版本

  composer require becklyn/ddd-generator-bundle --dev

步骤 2:启用 Bundle

然后,通过将其添加到项目 config/bundles.php 文件中注册的 Bundle 列表中来启用该 Bundle

// config/bundles.php

return [
    // ...
    Becklyn\DddGeneratorBundle\BecklynDddGeneratorBundle::class => ['dev' => true],
];

创建自己的 Generator/Maker

如果您想根据 DddMaker 创建自己的 Generator,则需要扩展抽象 Maker 类之一。

除非您能确保其实现永远不会改变,否则请不要扩展非抽象类。

如果您无法确保这一点,最好使用以下之一

  • DddMaker:最通用的抽象。它只提供功能,没有基础实现。

  • DddEntityMaker:这是实现基于一些输入选项的生成器的最简单方式。实际上,此 Bundle 的大多数生成器都使用 DddEntityMaker。

  • DddEntityTestMaker:专门用于生成测试文件的 DddEntityMaker。

  • DddEntityCommandMaker:专门用于生成 Command 和 CommandHandler 类的 DddEntityMaker。

要生成自己的 Generator,您需要创建一个扩展 src/Maker 中的 Maker 的类,并创建一个模板文件。

模板文件可以放置在 res/skeleton/dddsrc/Resources/skeleton/ddd 中,并使用文件扩展名 .tpl.php。如果您无法放置模板文件在那里,您也可以覆盖 Makers 的 getTemplatePath()

有关创建模板的更多信息,请参阅模板部分。

最后,您需要在服务配置文件中将您的 Maker 注册为 Maker。
这是通过向服务提供 maker.command 标签来完成的。

关于 i18n 的一些话

如果您想使用本地化功能,应使用 getExtraVariables() 方法提供它,并在模板中使用 $extra

或者,您可以覆盖 internationalize() 方法,但您需要提供包内部定义的任何键,以继续使用预定义的功能。因为这些键在每次补丁版本之间都可能发生变化,所以确保没有功能损坏可能非常困难。

模板

模板文件本身是纯文本文件,使用以下方式注入 PHP 变量
<?= $variableName; ?>.

如果您使用的是 DddEntityMaker 或扩展它的类,可以使用以下变量

  • $domain_namespace:域的子命名空间。例如,在这个命名空间 \App\Authorization\Domain\Foo 中,Foo 将是子命名空间。这也可以是多级的,例如 Foo\Bar

  • $entity:应生成的实体的名称。例如,`User`

  • $domain:应创建所有内容的域的名称。例如,`Authorization`

  • $psr4Root:由 Composer 定义的 PSR-4 Root 名称。

  • $i18n:一个国际化字符串数组。可用的键存储在位于 src/Resources/i18n 的 yaml 文件中。此数组仅应用于内部标记,例如如果您想为此包提交一个 Pull Request。请参阅国际化部分。

  • $version:当前日期,格式为 YYYY-MM-DD。这用于自动生成 PHP 文档注释。

  • $author:当前 git 用户,格式为 USERNAME <EMAIL>,或者如果无法读取 git 用户,则为 Code Generator <PROJECT NAME>

  • $extra:一个可以用来提供所需任何信息的数组。

注意:如果您重写了 getExtraVariables() 方法,请确保将您的数组与 super() 的数组合并,以确保不会出错。