Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
symfony4:database_renommer_entite [2020/05/16 12:48] marclebrun [Renommer la classe de Repository] |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Renommer une entité ====== | ||
- | |||
- | Dans cet exemple, on renomme l'entité **Pomme** en **Banane**. | ||
- | |||
- | ===== Renommer la table dans la base de données ===== | ||
- | |||
- | Utiliser **phpMyAdmin** pour renommer la table, ou utiliser cette | ||
- | commande : | ||
- | |||
- | <code sql> | ||
- | RENAME TABLE pomme TO banane; | ||
- | </code> | ||
- | |||
- | ===== Renommer la classe de l'Entité ===== | ||
- | |||
- | Renommer le fichier **src/Entity/Pomme.php** en **src/Entity/Banane.php**. | ||
- | |||
- | Éditer le fichier en modifiant toutes les instances de **Pomme** : | ||
- | * Nom de la **classe** | ||
- | * Nom du **Repository** | ||
- | |||
- | <code php /src/Entity/Banane.php> | ||
- | |||
- | ... | ||
- | |||
- | /** | ||
- | * @ORM\Entity(repositoryClass="App\Repository\BananeRepository") | ||
- | */ | ||
- | class Banane | ||
- | { | ||
- | ... | ||
- | } | ||
- | </code> | ||
- | |||
- | ===== Renommer la classe de Repository ===== | ||
- | |||
- | Renommer le fichier **src/Repository/PommeRepository.php** en **src/Repository/BananeRepository.php**. | ||
- | |||
- | Éditer le fichier en modifiant toutes les instances de **Pomme** : | ||
- | * Nom de l'**entité** utilisée | ||
- | * Nom de la **classe** | ||
- | * Référence de la classe entité dans le **contructeur** | ||
- | * Annotations, types des paramètres et fonctions | ||
- | |||
- | <code php src/Repository/BananeRepository.php> | ||
- | ... | ||
- | |||
- | use App\Entity\Banane; | ||
- | |||
- | ... | ||
- | |||
- | class BananeRepository extends ServiceEntityRepository | ||
- | { | ||
- | public function __construct(ManagerRegistry $registry) | ||
- | { | ||
- | parent::__construct($registry, Banane::class); | ||
- | } | ||
- | |||
- | // MODIFIER AUSSI TOUTES LES ANNOTATIONS ET LES TYPES INDIQUÉS | ||
- | // COMME PARAMÈTRES OU VALEURS DE RETOUR DES FONCTIONS. | ||
- | | ||
- | } | ||
- | </code> | ||
- | |||
- | ===== Modifier les contrôleurs ===== | ||
- | |||
- | Remplacer **Pomme** par **Banane** dans tous les contrôleurs où la classe est utilisée. | ||
- | |||
- | ===== Vider le cache de Symfony ===== | ||
- | |||
- | <code bash> | ||
- | php bin/console cache:clear | ||
- | </code> | ||