mappingException fatal error, class not found only in prod

Default
,

Bonjour,

besoin d'un peu d'aide pour mon projet. merci.

Ce que je fais

J'utilise la V5 de Symfony, et je suis sur un projet qui nécéssite plusieurs base de données, cette façon de faire étant nouvelle pour moi j'ai suivi les indications de la doc de symfony pour mettre en place une connexion vers différentes bdd et pour créer les Entités, ainsi que les modifications à apporter au fichier doctrine.yaml; bref, tout se passait bien, jusqu'à ce que je passe en mode prod, là j'ai une erreur 500, normal lorsqu'on regarde les log, mais je ne comprends et n'arrive pas à résoudre, cette erreure ... elle parait simple au premier abords pourtant ..

Voici mon fichier doctrine.yaml :

doctrine:
    dbal:
        default_connection: customer
        connections:
            default:
                # configure these for your database server
                url: '%env(resolve:DATABASE_URL)%'
                server_version: '5.7'
                charset: utf8mb4
                mapping_types:
                    enum: string
            customer:
                # configure these for your database server
                url: '%env(DATABASE_Mo_URL)%'
                server_version: '5.7'
                charset: utf8mb4
                mapping_types:
                    enum: string

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

Et maintenant la structure de mes fichiers (pour les entités)

project_name
    src
        Entity
            Main
                somes_entities
            Mo
                Agent.php (my User entity)
                somes_entities

Ce que je veux

Je voudrais faire disparaître cette erreur, merci de m'aider ...

Ce que j'obtiens

L'erreur dans le fichier log de symfony :

request.INFO: Matched route "agent_connexion". {"route":"agent_connexion","route_parameters":{"_route":"agent_connexion","_controller":"App\\Controller\\SecurityController::login"},"request_uri":"http://conge.local/connexion","method":"POST"} []
security.DEBUG: Checking for guard authentication credentials. {"firewall_key":"main","authenticators":1} []
security.DEBUG: Checking support on guard authenticator. {"firewall_key":"main","authenticator":"App\\Security\\LoginFormAuthenticator"} []
security.DEBUG: Calling getCredentials() on guard authenticator. {"firewall_key":"main","authenticator":"App\\Security\\LoginFormAuthenticator"} []
security.DEBUG: Passing guard token information to the GuardAuthenticationProvider {"firewall_key":"main","authenticator":"App\\Security\\LoginFormAuthenticator"} []
request.CRITICAL: Uncaught PHP Exception Doctrine\Persistence\Mapping\MappingException: "The class 'App\Entity\Mo\Agent' was not found in the chain configured namespaces App\Entity\Main" at D:\Programmation\CRNA\conge\vendor\doctrine\persistence\lib\Doctrine\Persistence\Mapping\MappingException.php line 23 {"exception":"[object] (Doctrine\\Persistence\\Mapping\\MappingException(code: 0): The class 'App\\Entity\\Mo\\Agent' was not found in the chain configured namespaces App\\Entity\\Main at D:\\Programmation\\CRNA\\conge\\vendor\\doctrine\\persistence\\lib\\Doctrine\\Persistence\\Mapping\\MappingException.php:23)"} []

6 Réponse

19666
,

Salut,

Vérifie que tu as bien mis les bon namespaces dans tes entitées surtout sur App\Entity\Mo\Agent je pense que tu as simplement mal copié collé :).
Si ça ne donne rien, il me faudrais le contenu de ton entitée qui pose le soucis.

Default
,

Bonjour,
Le problème ne vient pas de là, j'ai bien vérifié mes namespace, de plus le problème ne survient qu'en mode prod, et pas en mode dev, alors que si c'était un soucis de namespace l'erreure serait souligné par symfony aussi en mode dev, cette erreure arrive avec toute les entités aussi, je ne sais pas si je l'ai précisé dans mon post, parce que là je ne présente que le cas de l'entité Agent (Ma class User) , si c'est le cas désolé.
Ps : mon post sur stackoverflow, là bas quelqu'un a tenté de m'aider, sans succés malheureusement ... https://stackoverflow.com/questions/61999782/symfony-mappingexception-fatal-error-class-not-found-only-in-prod-when-i-requ
PS2: merci d'avoir répondu a mon post, je désépère de trouver une réponse ...

19666
,

Ahh mais je sais ce qu'il se passe alors :)
Le fait que tu mentionne que ça ne survienne qu'en prod est un gros indice, j'avais mal lu dans ton message initial sorry.

Ton soucis est super simple, tu as la config doctrine de prod qui écrase ce que tu sur la config doctrine de base, regarde dans config/prod tu va voir qu'il y a un doctrine.yaml il prends le dessus en prod.

Sois tu rm purement ce fichier si tu reporte la conf dans celui-ci.

Default
,

Mon dieu ! C'était aussi simple ? je galère depuis des jouuurssur ça pour rien ? haha, merci beaucoup, je crois bien que le problème est résuolu ... maintenant j'ai d'autres erreurs a régler , le quotidien des développeur ! Mais en tout cas merci, pour le coup je ne comprenais pas, j'ai passer des heures a vérifier mon doctrine.yaml, et merci aussi pour la réponse rapide !

19666
,

De rien,
C'est vrais qu'on oublie vite la config de production ;)
N'oublie pas de marquer le sujet résulu.

Default
,

Comment faire cela ? C'estla première fois que je poste, et je ne vois pas de bouton pour mettre ce sujet en résolu...