Quand dois-je utiliser un champ existant?

8

Lors de l'ajout de nouveaux champs à un type de contenu, quand dois-je reprendre un champ existant? par exemple, si j'ai besoin d'un champ d'image pour mon type de contenu, est-ce toujours une bonne idée de réutiliser un champ d'image existant?

hknik
la source
3
si elle doit être utilisée de la même manière, accessible aux mêmes utilisateurs / rôles, avoir le même thème, etc., alors oui, il sera beaucoup plus facile à maintenir si vous réutilisez le même champ.
Jimajamma
1
mais si une image doit être, par exemple, une photo d'utilisateur dans un type de contenu, mais une vignette d'une image de produit dans un autre, alors non, créez des champs différents.
Jimajamma
@Jimajamma Êtes-vous sûr du deuxième commentaire? Je pense qu'il peut être configuré dans les paramètres d'affichage du type de contenu.
hknik
bien sûr, il peut être affiché comme vous le souhaitez, mon commentaire concerne le nom du champ. par exemple, field_avatar utilisé comme image de profil d'un utilisateur dans un type de contenu surchargé en tant que vignette de produit dans un autre type est tout simplement déroutant du point de vue de la dénomination.
Jimajamma

Réponses:

9

Tenez compte des avantages et des inconvénients de la réutilisation des champs:

  • Performances : la réutilisation des champs présente un léger gain de performances. Cependant, pour la plupart des sites avec un nombre modéré de champs, c'est une différence négligeable.
  • Maintenabilité : En théorie, si vous réutilisez le même champ dans le même but sur plusieurs types de contenu, alors si vous décidez de changer sa fonctionnalité plus tard, vous n'avez qu'à le changer en un seul endroit. De même, si vous souhaitez le thème de la même manière entre les entités, vous n'avez qu'à utiliser un seul sélecteur. Dans la pratique, cela se produit rarement, et le plus souvent l'inverse est vrai - vous avez utilisé le même champ à plusieurs endroits, puis réalisez qu'ils doivent en fait se comporter différemment.
  • Configuration : Évidemment, il faut moins de temps pour ajouter à nouveau un champ existant que pour en ajouter un nouveau.
  • Portabilité : si vous exportez des champs avec des fonctionnalités, il est préférable de ne pas les réutiliser entre les entités, sauf si cela est absolument nécessaire. Techniquement, il n'y a rien de mal à réutiliser des champs (puisque vous pouvez exporter des bases de champs et des instances de champ séparément), mais dans la pratique, cela a tendance à entraîner de la confusion et des dépendances circulaires. Si vous choisissez de ne pas réutiliser les champs, vous avez le luxe de pouvoir les préfixer avec le type de contenu / bundle auquel ils sont attachés, par exemple "field_article_image", "field_page_taxonomy", etc ..., ce qui facilite la portabilité et la maintenance.

Dans le cas où ce n'est pas clair d'après mon ton là-bas, ma préférence est de ne jamais réutiliser les champs à moins qu'il ne soit totalement, complètement, 100% clair qu'ils sont vraiment et seront à jamais utilisés dans le même but.

Dane Powell
la source
D'accord. De plus, si vous avez des paramètres de champ différents, par exemple, une image n'en a que 1 tandis que l'autre peut utiliser un nombre illimité, si vous changez le champ, il en modifie toutes les instances.
chadpeppers