Symfony 5 - Make:自定义文件夹中的实体?

在我的 Symfony 5 应用程序中,我有这样的架构:

src/
├─ Website/
│  ├─ Entity/
│  ├─ Repository/
│  ├─ Controller/
├─ Application/
│  ├─ Entity/
│  ├─ Repository/
│  ├─ Controller/

当我使用命令 php bin/console make:entity 创建实体时,我希望能够指定在哪个文件夹上创建实体,并且它还会自动在正确的文件夹上创建存储库。

这是我对 doctrine.yaml 文件的配置

    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
        auto_mapping: true
        mappings:
            AppApplication:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Application/Entity'
                prefix: 'AppApplicationEntity'
                alias: Application

            AppWebsite:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Website/Entity'
                prefix: 'AppWebsiteEntity'
                alias: Website

目前,我找到的唯一解决方案如下:

enter image description here

  1. php bin/console make:entity
  2. 我等待它询问我的路径,如果我想在 src/Application/Entity 文件夹中创建实体 Totoo,我输入此: AppApplicationEntityTotoo
  3. 它确实在 src/Application/Entity/Totoo.php 上创建了实体
  4. 但它会在 src/Repository/ApplicationEntityTotooRepository.php 上创建存储库

我们如何优化这种使用命令创建实体的方式,以便在正确的位置自动创建实体和存储库,并且如果可能,无需每次都输入完整路径? (也许要感谢我的学说设置中的别名?但我不明白怎么做)

stack overflow Symfony 5 - Make:entity in custom folder?
原文答案
author avatar

接受的答案

To perform this do you need to add a maker.yaml file with the following lines (e.g)

# config/package/dev
maker:
  root_namespace: 'App\Application\'

When you will type : bin/console make:entity the new entity or modifying an existing Entity will check it out into this folder.

P:S watch out in which env do you configure it, dev in my case

That's it ;)


答案: