Aller au contenu

Points d'extension

phil/trash-bundle

Ce qu'une application implémente, écoute, configure ou utilise. Les ressources sont des références de phil/resource.

TrashHandler

Phil\TrashBundle\Application\TrashHandler : un type de ressource que l'application met à la corbeille. Un service qui l'implémente reçoit l'étiquette phil_trash.handler par autoconfiguration. Voir Gestionnaires.

MéthodeContrat
resourceKey(): stringLe type : lettres minuscules, chiffres, _, . ou -
supports(object $resource): boolSi le gestionnaire garde cet objet
capture(object $resource): CapturedL'identifiant, un titre pour la corbeille, ce qu'il faut pour la restaurer en JSON, et son parent
remove(object $resource): voidRetire les lignes de la ressource, les siennes et celles de ses enfants, sans flush ; ses fichiers restent
parentExists(ResourceReference $parent): boolSi un parent existe encore
restore(TrashItem $item, ?ResourceReference $parent): objectRamène la ressource sous ce parent, sans flush, et la retourne
purge(TrashItem $item): voidOublie ce que la ressource a laissé hors de la corbeille et de ses tables, ses fichiers ; souvent rien

La corbeille fait un seul flush, après le gestionnaire : un gestionnaire ne fait jamais de flush et ne supprime jamais un fichier avant purge().

Événements

ÉvénementQuandCe que fait un écouteur
Phil\TrashBundle\Application\Event\ResourceTrashedUne ressource entre dans la corbeilleÉcrit la piste d'audit, vide un cache
Phil\TrashBundle\Application\Event\ResourceRestoredElle revientLa même chose
Phil\TrashBundle\Application\Event\TrashItemPurgedElle est oubliée pour de bonLa même chose

Ils sont déclenchés par le répartiteur d'événements de l'application, quand il y en a un. Voir Conservation.

Configuration

OptionCe qu'elle étend
retentionCombien de jours une ressource mise à la corbeille est gardée avant sa purge
retention_by_kindLes jours gardés pour certains types : { page: 90 }

TrashItemRepository

Phil\TrashBundle\Domain\Repository\TrashItemRepository : la corbeille, un alias public de DoctrineTrashItemRepository. Un stockage propre à l'application borne expired() par sa limite, pour que phil:trash:purge ne lise jamais toute la corbeille.