After Symfony Kernel reboot - Doctrine EventManager keep old Container
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Área
- backend, testing-qa
Línea de trabajo
Ejecuta la reproducción de tests/functional/ContainerCest.php usando los comandos documentados git checkout, composer install y vendor/bin/codecept run. Inspecciona la ruta de reinicio del kernel de Symfony, la persistencia de doctrine.orm.entity_manager y ContainerAwareEventManager para confirmar por qué se sigue haciendo referencia al contenedor antiguo. Se considera terminado cuando una prueba de regresión demuestre un uso coherente del contenedor, o cuando se documente la limitación si no se selecciona ninguna corrección.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What are you trying to achieve?
I have case, when my service have some state, like MemoryStorage collect some data and I want to test what it collects. This MemoryStorage filled by some listeners, subscribed to Doctrine events.
What do you get instead?
My MemoryStorage empty.
Here is reproduce test https://github.com/ewgRa/symfony-standard/blob/codeception-bug-with-container/tests/functional/ContainerCest.php .
tryToTest failed, and tryToTestProof show the reason why it fail.
Problem that doctrine.orm.entity_manager is persistent service and it have EventManager, that actually ContainerAwareEventManager, that store container.
When Symfony module reboot kernel, it create new Container, but since doctrine is persistent, EventManager continue keep old container.
As a result Doctrine events work with its own container, while $I->grabService(...) work with another container.
Reproduce:
git clone [email protected]:ewgRa/symfony-standard.git
cd symfony-standard/
git checkout codeception-bug-with-container
composer install
vendor/bin/codecept run
So, is it feature? Or bug? Looks like 100% bug. Possible solution is update EventManager container also on kernel reboot. Or another solution - unpersist doctrine.
At least this must be mentioned somehow in documentation. Also some "I make service persistent, and it not works" issues can be related to this.
- Lenguaje dominante
- PHP
- Estrellas
- 4
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Codeception/module-doctrine
-
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Codeception/module-doctrine#2 · 1 comentario · 1 reacción ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 64/100
Codeception/module-doctrine#6 · 1 comentario ·
Todos los issues de Codeception/module-doctrine
Issues similares
-
Talk Review
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
socallinuxexpo/scale-drupal#351 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
code4romania/cpc#47 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
mautic/api-library#351 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
nunomaduro/collision#371 ·
-
Lead create/update: a product row without a "product_id" key passes LeadForm validation and fails in the database (500)Posiblemente ocupada @Arslan-TR la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
krayin/laravel-crm#2681 ·
Los mantenedores suelen responder en 2 días