Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

After Symfony Kernel reboot - Doctrine EventManager keep old Container

Abierto
#24 2 comentarios 1 reacción 0 asignados Ver en GitHub

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
Stack tecnológico
php, symfony

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Codeception/module-doctrine

Todos los issues de Codeception/module-doctrine

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.