Symfony 4 - Doctrine Исключение сопоставления только в среде Prod - PullRequest
2 голосов
/ 26 января 2020

Развертывание в новом проекте Symfony 4 с несколькими менеджерами сущностей, следующее исключение происходит ТОЛЬКО в среде prod. В dev все в порядке.

Uncaught PHP Exception Doctrine \ Persistence \ Mapping \ MappingException: "Класс 'App \ Entity \ EntitesGlobales \ Entreprise' не найден в пространствах имен цепочки, настроенных

Я определил оба менеджера сущностей в соответствии с Symfony docs

    orm:
    default_entity_manager: default
    entity_managers:
        default:
            connection: default
            mappings:
                EntitesGlobales:
                    is_bundle: false
                    type: annotation
                    dir: '%kernel.project_dir%/src/Entity/EntitesGlobales'
                    prefix: 'App\Entity\EntitesGlobales'
                    alias: App\EntitesGlobales
        customer:
            ...

Я попытался изменить многие параметры, я очистил кэш вручную, я подогрел кэш, я дал 777 Права на папку и файл, но ничего не работает. Я не нашел подобных проблем на net.

Есть идеи? Заранее спасибо

1 Ответ

3 голосов
/ 26 января 2020

Я столкнулся с точно такой же проблемой. Тот факт, что файл config/packages/prod/doctrine.yaml существует, сделал некоторые настройки config/packages/doctrine.yaml не учтенными. Попробуйте удалить файл doctrine prod, и вы увидите, что исключение исчезает.

Решение состоит в том, чтобы явно указать два менеджера сущностей в config/packages/prod/doctrine.yaml следующим образом:

doctrine:
    orm:
        entity_managers:
            main:
                metadata_cache_driver:
                    type: pool
                    pool: doctrine.system_cache_pool
                query_cache_driver:
                    type: pool
                    pool: doctrine.system_cache_pool
                result_cache_driver:
                    type: pool
                    pool: doctrine.result_cache_pool
            secondary:
                metadata_cache_driver:
                    type: pool
                    pool: doctrine.system_cache_pool
                query_cache_driver:
                    type: pool
                    pool: doctrine.system_cache_pool
                result_cache_driver:
                    type: pool
                    pool: doctrine.result_cache_pool

Посмотрите на обсуждение здесь https://github.com/symfony/symfony/issues/27769

...