Vinstrok
@Vinstrok
Веб разработчик

Как создать entity не по стандартному пути?

Здравствуйте имеются вот такие настройки orm в -
doctrine.yaml


orm:
        auto_generate_proxy_classes: "%kernel.debug%"
#        default_entity_manager: oracle_db
        entity_managers:
            oracle_db:
                connection: oracle_db
                naming_strategy: doctrine.orm.naming_strategy.underscore
                auto_mapping: true
                mappings:
                    App:
                        is_bundle: false
                        type: annotation
                        dir: '%kernel.project_dir%/src/Common/Entity'
                        prefix: 'App\Common\Entity'
                        alias: App\Common

                    OracleDB:
                        is_bundle: false
                        type: annotation
                        dir: '%kernel.project_dir%/src/OracleDB/Entity'
                        prefix: 'App\OracleDB\Entity'
                        alias: App\OracleDB

                    Cecs:
                        is_bundle: false
                        type: annotation
                        dir: '%kernel.project_dir%/src/Cecs/Entity'
                        prefix: 'App\Cecs\Entity'
                        alias: App\Cecs


И так сложилось что все entity хранятся членораздельно по папочкам -
App\Common\Entity
App\OracleDB\Entity
App\Cecs\Entity

Но при выполнении команды php bin/console make:entity создаются файлы в разделе App/Entity.
Вопрос как можно при помощи данной команды создать entity в нужной мне директории с правильным неймспейсом например App\OracleDB\Entity.
Неужели только вручную?
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Так нельзя

Как вариант (если у вас все сущности все равно находятся в неймеспейсе Entity, т.к. он захардкожен) - конфигурировать бандл перед каждой генерацией, а потом возвращать назад
maker:
    root_namespace: 'App\Common'


Не забудьте добавить неймспейс в конфиг доктрины до генерации, т.к. иначе вы сгенерируете класс сущности и репозиторий, но добавить поля вам не дадут.
mappings:
    App:
        is_bundle: false
        type: annotation
        dir: '%kernel.project_dir%/src/Entity'
        prefix: 'App\Entity'
        alias: App
    AppСommon:
        is_bundle: false
        type: annotation
        dir: '%kernel.project_dir%/src/Common/Entity'
        prefix: 'App\Common\Entity'
        alias: AppСommon
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы