Aller au contenu

Points d'extension

phil/references-bundle

Ce que l'application implémente, configure ou utilise. Les références sont celles de phil/resource.

Ports

ReferenceCollector

Phil\ReferencesBundle\Application\ReferenceCollector trouve vers quoi pointe un genre de source. Un service qui l'implémente reçoit l'étiquette phil_references.collector par autoconfiguration. Voir Collecteurs et cibles.

MéthodeContrat
supports(object $source): boolS'il lit cette source
sourceOf(object $source): ResourceReferenceLa référence propre de la source, lue avant qu'une suppression vide son identifiant
collect(object $source): iterable<Link>Chaque lien, avec le champ où il se trouve : une propriété, ou un chemin dans un document JSON

ReferenceTarget

Phil\ReferencesBundle\Application\ReferenceTarget représente un genre de ressource qu'utilisent les autres. Un service qui l'implémente reçoit l'étiquette phil_references.target par autoconfiguration. Sans cible, un genre ne voit jamais une suppression refusée ni ses liens rompus vérifiés.

MéthodeContrat
kind(): stringLe genre qu'elle connaît
exists(string $id): boolSi cette ressource existe encore
referenceOf(object $resource): ?ResourceReferenceLa référence d'un objet de son genre, null pour un autre objet

UsageRepository

Phil\ReferencesBundle\Domain\Repository\UsageRepository est la table des usages, un alias public de DbalUsageRepository sur connection. Un magasin propre à l'application garde replace(), qui n'écrit que ce qui a changé, et usagesOfAll(), qui lit plusieurs cibles à la fois.

Configuration

OptionCe qu'elle étend
connectionLa connexion Doctrine qui garde les usages, et dont les entités sont suivies
track_entitiesSi les usages des entités Doctrine sont tenus à jour à chaque flush
block_deletionSi la suppression d'une entité encore utilisée interrompt le flush

Services

References — usagesOf(), assertUnused(), broken(), refresh(), forget() — est ce qu'appelle l'application : avant une suppression, pour montrer un message plutôt qu'un flush annulé, et pour les sources qui ne sont pas des entités Doctrine. Voir Usages.