Post

Symfony – Créer une entité

Symfony – Créer une entité

Cours 9 — Créer une entité

Introduction

Une entité représente un objet métier de l’application.

Exemples :

  • un patient ;
  • un utilisateur ;
  • un produit ;
  • un article.

Une entité est généralement associée à une table de la base de données.


Créer une entité

Commande :

1
php bin/console make:entity

Symfony demande ensuite :

1
Class name of the entity to create:

Exemple :

1
Patient

Ajouter des propriétés

Symfony propose ensuite d’ajouter des propriétés.

Exemple :

1
New property name:
1
nom

Type :

1
string

Puis :

1
prenom

Type :

1
string

Résultat

Symfony crée le fichier :

1
src/Entity/Patient.php

Exemple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#[ORM\Entity]
class Patient
{
    #[ORM\Id]
    #[ORM\GeneratedValue]
    #[ORM\Column]
    private ?int $id = null;

    #[ORM\Column(length: 255)]
    private ?string $nom = null;

    #[ORM\Column(length: 255)]
    private ?string $prenom = null;
}

Les propriétés

Dans cette entité :

1
2
3
private ?int $id = null;
private ?string $nom = null;
private ?string $prenom = null;

Chaque propriété correspond à une future colonne de la table.


La clé primaire

1
2
3
4
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;

Cette propriété représente l’identifiant unique de chaque enregistrement.

Symfony génère automatiquement sa valeur.


Les méthodes Getter et Setter

Symfony génère automatiquement des méthodes.

Exemple :

1
2
3
4
5
6
7
8
9
10
11
public function getNom(): ?string
{
    return $this->nom;
}

public function setNom(string $nom): static
{
    $this->nom = $nom;

    return $this;
}

Le getter permet de lire une valeur.

Le setter permet de modifier une valeur.


Conclusion

Pour créer une entité :

  • utiliser la commande make:entity ;
  • choisir un nom de classe ;
  • ajouter les propriétés ;
  • laisser Symfony générer le fichier.

Une entité représente un objet métier et servira à stocker les données dans la base de données.

This post is licensed under CC BY 4.0 by the author.