Consultez la documentation pour AccountInterface
:
Définit un objet qui a un ID utilisateur, des rôles et peut avoir des données de session. L'interface est implémentée à la fois par la session globale et l'entité utilisateur
C'est dans l' Session
espace de noms pour une raison - il représente quelque chose qui peut avoir des données de session.
Les interfaces ContentEntityInterface
et EntityChangedInterface
étendues par UserInterface
vous indiquent qu'il représente un concept différent:
Les entités de contenu utilisent des champs pour toutes leurs propriétés d'entité et sont traduisibles et révisables, tandis que les traductions et les révisions peuvent être activées par type d'entité.
Définit une interface pour le suivi de l'horodatage des modifications d'entité.
Ces données peuvent être utiles pour une invalidation du cache plus précise (en particulier du côté client) et un verrouillage d'édition simultané.
A UserInterface
représente un compte utilisateur Drupal complet qui peut avoir des révisions, des champs, des traductions, etc.
Je ne peux pas vous dire ce qui convient le mieux à votre cas d'utilisation, mais je vous encourage à réfléchir à laquelle de ces interfaces est la plus applicable au code que vous écrivez.
Mon instinct me dit que vous utiliseriez AccountInterface
pour quelque chose qui est au moins "connecté" (par exemple utilisateur connecté, une liste d'utilisateurs en ligne, quelqu'un connecté via SSO) et UserInterface
pour autre chose que cela (par exemple, les profils d'utilisateurs, les auteurs associés, les longs -données vécues, la plupart des choses que nous faisons dans Drupal).