Est-ce que tout a besoin d'un bundle?

11

J'apprends l'API d'entité. J'ai un simple tableau supplémentaire que j'aimerais "drupaliser" afin de pouvoir l'utiliser dans Views, par exemple.

J'ai lu pas mal de choses, regardé quelques vidéos, regardé pas mal d'exemples. Je suis coincé sur le concept de bundles . Je comprends ce que sont les bundles (par exemple, les types de nœuds sont des bundles de l'entité de nœud).

Mais pour mon usage, il n'y aura qu'un seul paquet. Dans les exemples que j'ai vus, le bundle est stocké dans la table de base de données; ce n'est pas nécessaire pour moi car ce serait la même valeur stockée pour chaque enregistrement. Je pensais donc que je pourrais en quelque sorte ignorer cela, ou que mon entité retourne toujours une chaîne standard pour le bundle.

Ai-je mal compris? Les bundles doivent-ils toujours être implémentés et implémentés au niveau de la table de base de données?

artfulrobot
la source

Réponses:

9

Oui, un bundle est toujours, toujours nécessaire pour les entités.

Si vous ne définissez pas vos propres bundles, le système d'entités vous en attribuera un par défaut avec le même nom que le type d'entité, et celui-ci sera utilisé.

Si vous n'avez qu'un seul bundle et que vous ne prévoyez d'en avoir qu'un, vous n'avez pas besoin d'avoir un champ spécifique dans votre table d'entités pour celui-ci. Comme vous le suggérez dans votre question, ce serait toujours la même chose, il serait donc redondant et ajouterait simplement une surcharge supplémentaire (même minime) à vos requêtes db.

Si vous pensez que vous pourriez avoir besoin de faire la distinction entre les différents sous-types de votre entité à un moment donné, cela vaudrait la peine de le construire dès le début; cela dépend vraiment de votre cas d'utilisation.

Clive
la source
Bien que, si une entité doit avoir un bundle, comment se fait-il que le bundle lui-même puisse être une entité (?!)
artfulrobot
1
Je suis à peu près sûr qu'il s'agit simplement de l'idée d'abstraire la fonctionnalité CRUD sur un type d'entité générique et de la réutiliser dans tout le système afin que tous les objets (entités, bundles, champs, etc.) puissent en profiter sans avoir à implémenter leur propre . En termes d'entité Drupal (nœud, utilisateur, etc.), un bundle est très différent. Si un bundle était en effet une entité Drupal, il pourrait lui-même avoir des bundles, ce qui n'a pas de sens :)
Clive