Services utiles

Pour chaque entité, on utilisera le dépôt correspondant, tel que défini dans la classe.

  // src/Controller/DiabloController::createProfile
  use App\Entity\Profile;

  // ...

  $em = $this->getDoctrine()->getManager();
  $repository_profile = $em->getRepository(Profile:class);
	

On utilise donc la service d'appel à Doctrine ainsi que le gestionnaire d'entité (Entity Manager).

Enregistrer

  // src/Controller/DiabloController::createProfile
  $em = $this->getDoctrine()->getManager();

  $profile = new Profile();
  $profile->setBattleTag("Medor");
  
  // On insère l'instance de profile dans la liste des éléments à enregistrer en base
  // Les données ne sont pas encore écrites
  $em->persist($profile);
  // On confirme l'exécution à Doctrine
  $em->flush();
	

Doctrine s'occupe de tout : différencie les insertions et les mises à jours, génère les identifiants, utilise les transactions, etc.

Les appels à la base de données sont visibles dans le profiler.

Méthodes du gestionnaire d'entités

clear
annule tous les persist en attente.
detach($entite)
annule le persist pour l'instance $entite .
contains($entite)
vérifie si l'instance en paramètre a eu un persist dans le gestionnaire d'entité.
refresh($entite)
retour à la base; tous les changements sur l'instance sont annulés.
remove($entite)
prépare la suppression de l'entité.