在我的 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:
App\Application:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Application/Entity'
prefix: 'App\Application\Entity'
alias: Application
App\Website:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Website/Entity'
prefix: 'App\Website\Entity'
alias: Website
目前,我找到的唯一解决方案如下:
php bin/console make:entity
- 我等着它问我路径,如果我想在
src/Application/Entity
文件夹中创建实体 Totoo,我就输入这个:\App\Application\Entity\Totoo
- 它确实在
src/Application/Entity/Totoo.php
上创建实体 - 但它会在
src/Repository/Application\Entity\TotooRepository.php
上创建存储库
我们如何优化这种使用命令创建实体的方式,以便在正确的位置自动创建实体和存储库,并且如果可能而不必每次都键入完整路径? (也许是由于我的 Doctrine 设置中的别名?但我不知道如何)
最佳答案
要执行此操作,您需要添加一个 maker.yaml
文件
使用以下行(例如)
# config/package/dev
maker:
root_namespace: 'App\Application\'
当您键入:bin/console make:entity
时,新实体或修改现有实体会将其 check out 到此文件夹中。
P:S 注意你在哪个环境中配置它,在我的例子中是 dev
就是这样;)
关于Symfony 5 - 制作 :entity in custom folder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66316808/