Propriétés conviviales d'entité
(Page créée avec « == Présentation == Cette page a pour objet de décrire comment définir un nom convivial d'une propriété d'une entité et de comment la récupérer dans Symfony. == Co… ») |
|||
Ligne 3 : | Ligne 3 : | ||
== Contexte == | == Contexte == | ||
− | Dans le cadre de la mise en place d'un simple [https://fr.wikipedia.org/wiki/CRUD CRUD] sous Symfony, il peut être nécessaire de pouvoir lister dans un tableau un ensemble d'entités. | + | Dans le cadre de la mise en place d'un simple [https://fr.wikipedia.org/wiki/CRUD CRUD] sous Symfony, il peut être nécessaire de pouvoir lister dans un tableau un ensemble d'entités. Ce tableau devra donc comporter des titres de colonnes. Idéalement, ces titres doivent correspondre à la description de la propriété de l'entité. |
Par exemple, une propriété pourrait se nommer <syntaxhighlight lang="php" inline>$teamLeader</syntaxhighlight>, mais la description de cette propriété correspondrait à <code>Chef d'équipe</code>. Les propriétés des entités étant des variables PHP, il n'est pas possible de leur donner un nom convivial tel quel. | Par exemple, une propriété pourrait se nommer <syntaxhighlight lang="php" inline>$teamLeader</syntaxhighlight>, mais la description de cette propriété correspondrait à <code>Chef d'équipe</code>. Les propriétés des entités étant des variables PHP, il n'est pas possible de leur donner un nom convivial tel quel. |
Version du 26 février 2020 à 16:35
Présentation
Cette page a pour objet de décrire comment définir un nom convivial d'une propriété d'une entité et de comment la récupérer dans Symfony.
Contexte
Dans le cadre de la mise en place d'un simple CRUD sous Symfony, il peut être nécessaire de pouvoir lister dans un tableau un ensemble d'entités. Ce tableau devra donc comporter des titres de colonnes. Idéalement, ces titres doivent correspondre à la description de la propriété de l'entité.
Par exemple, une propriété pourrait se nommer $teamLeader
, mais la description de cette propriété correspondrait à Chef d'équipe
. Les propriétés des entités étant des variables PHP, il n'est pas possible de leur donner un nom convivial tel quel.
De ce fait, où renseigner cette information ?
Plusieurs choix sont possibles :
- Dans la définition ORM de l'entité, en annotation, avec la syntaxe
* @ORM\Column(type="string", length=255, nullable=true, options={"comment":"Chef d'équipe"})
par exemple- Cette astuce permettra d'assigner un commentaire descriptif à la colonne en base de données. Toutefois, la récupération de cette information est laborieuse et il sera préférable de mettre en oeuvre d'autres solutions.
- Dans une table supplémentaire dédiée à la description de chacune des propriétés de chaque entité.
- Cette solution est envisageable, mais demande une maintenance particulière. De plus, l’algorithme de l'application devra tenir compte de cette architecture.
- Dans chacune des vues ou contrôleurs qui auront besoin de cette information.
- Le problème majeur de cette solution est la duplication de code. L'information sera présente à chaque endroit où elle sera nécessaire
- Dans la définition de l'entité même
- Cela rejoint à peu près la solution de l'ORM, et c'est cette solution qui va être détaillée dans cette page
- Et d'autres solutions...