Codeception / Codeception/module-doctrine

Memory Overflow at Doctrine Module with related entities

Abierto
#22 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
PHP
Estrellas
4
Forks
2
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

If an entity is on the `1` side of a `1:n` relationship (i.e. it has `oneToMany`), and I handle it with the Doctrine Module, the object gets infinitely large, thereby causing a PHP memory overflow.

### Details

I've set up these two entities:
```yml
AppBundle\Entity\TestGroup:
type: entity
table: test_group

id:
id:
type: integer
generator:
strategy: IDENTITY

fields:
name:
type: string
length: 50
nullable: true

oneToMany:
test_user:
targetEntity: TestUser
mappedBy: test_group
```

```yml
AppBundle\Entity\TestUser:
type: entity
table: test_user

id:
id:
type: integer
generator:
strategy: IDENTITY

fields:
group_id:
type: integer
nullable: true
name:
type: string
length: 50
nullable: true

manyToOne:
test_group:
targetEntity:
inversedBy: test_user
joinColumn:
name: group_id
referencedColumnName: id
```
Now I run this functional test:
```php
public function tryMemoryLeak (FunctionalTester $I)
{
$group = new \AppBundle\Entity\TestGroup();
var_dump($group);
$I->persistEntity($group);
die;
var_dump($group);
}
```
Result: The output from `var_dump` is normal; and the entity exists in the database. But as soon as I remove `die;` the bug occurs: I get endless (i.e. hundreds or thousands of lines) output in the console. The same happens if I fetch the entity from the database with `$I->grabEntityFromRepository`.
This explains what I initially observed: If I try to pass the object to some function, I get a memory overflow crash from PHP.

I've tried it with SQLite and PostgreSQL.

If I do the same with the `TestUser` entity, everything is normal. So I'm figuring it has something to do with the `oneToMany` setting.

And if I do it in a controller, everything is fine too - so I'm figuring there's no error in the entities.

### Setup

* Codeception version: 2.3.5
* PHP Version: 7.1
* Operating System: Windows 10

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.