Aller au contenu

Installation

tilttek/leaderboards

Prérequis

  • PHP 8.5 ou plus récent.
  • tilttek/activity, le journal de l'activité des membres que lisent les classements.
  • phil/resource, la référence opaque d'un membre, et psr/clock, l'horloge d'où se lit la période en cours.

Installer

composer require tilttek/leaderboards

Une application Symfony installe plutôt tilttek/leaderboards-bundle, qui apporte la bibliothèque, ses stockages Doctrine DBAL, la configuration des classements, les commandes et les gabarits.

Assembler la bibliothèque à la main

Les classements, les trois stockages et une horloge forment Leaderboards ; les classements et le stockage des scores forment la projection, que les projections du journal tiennent à jour :

$boards = Boards::fromArray($configuration, 'America/Toronto');
$scores = new InMemoryScoreStore();
$projection = new LeaderboardProjection($boards, $scores);
$leaderboards = new Leaderboards($boards, $scores, new InMemorySnapshotStore(), new InMemoryAppearanceStore(), $clock, $observer);

$journal = new Journal($log, $clock, observers: [new LiveProjections($projector, new Projections([$projection]))]);

Les stockages en mémoire oublient tout avec le processus : une application écrit les siens sur son propre support (Écrire un stockage), ou prend ceux du bundle.