Skip to content

Instantly share code, notes, and snippets.

@ahmed-bhs
Last active December 8, 2017 07:59
Show Gist options
  • Save ahmed-bhs/0ca6b72c297479ba7a0239b0d7bf2dc0 to your computer and use it in GitHub Desktop.
Save ahmed-bhs/0ca6b72c297479ba7a0239b0d7bf2dc0 to your computer and use it in GitHub Desktop.

// ... pour optimiser le nombre de requêtes exécutées par Doctrine. class User { // ...

/**
* @ORM\OneToOne(targetEntity=Address::class, cascade={"persist", "remove"}, inversedBy="user", fetch="EAGER")
*/
protected $address;

/**
* @ORM\OneToMany(targetEntity=Participation::class, mappedBy="user", fetch="EAGER")
*/
protected $participations;

// ...

}

L’appel aux méthodes contains($entity), containsKey($key), count(), get($key), slice($offset, $length = null), add($entity) et offsetSet($key, $entity) de la collection ne déclenchera pas une requête de chargement de toutes les entités.

Si par exemple, nous avions la relation entre les utilisateurs et les participations en mode EXTRA_LAZY, un appel à la méthode $user->getParticipations()->count() se traduirait par une requête SELECT COUNT(*).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment