Configuration
tilttek/collections-bundletilttek_collections:
store: doctrine # or memory, for tests
connection: default # the Doctrine DBAL connection
timezone: UTC # the timezone of the calendar of the item of the day
locale: '%kernel.default_locale%' # the locale the dice a member rolls are named in
catalog: configuration # or doctrine: the catalog in tilttek_collections_definition
rarities: { common: 70, rare: { weight: 25 }, legendary: 5 }
items:
pirate: { name: { en: Pirate, fr: Pirate }, rarity: rare, sets: [crew], image: /img/pirate.webp, description: Sails the seas. }
ember-d6: { name: Ember d6, rarity: common, sets: [ember], die: { sides: 6, color: '#c0392b', material: resin } }
medal: { name: Medal, rarity: rare, tradable: false }
sets:
crew: { name: The crew, kind: plain, rewards: [{ kind: points, code: xp, amount: 50 }] }
ember: { name: Ember dice, kind: base }
packs:
booster: { name: Booster, size: 5, sets: [crew], weights: { common: 80, rare: 20 } }
daily:
enabled: false # whether the activity gives the item of the day
verbs: [] # the verb patterns of the activity that counts as coming by
salt: '%env(COLLECTIONS_DAILY_SALT)%' # a secret of 32 bytes or more; derived from kernel.secret when left out
sets: [] # the sets the free days draw from; every item when none is named
dates: { '10-31': pumpkin, '2026-12-25': star }
computed: [{ rule: easter, item: egg }, { rule: 'fourth thursday of november', item: turkey, days: 4 }]
projection: collections.daily
translation_domain: tilttek_collections
privacy:
member_kind: member # the kind of the member a data subject of phil/privacy-bundle stands for
Les clés de rarities, items, sets, packs et daily.dates sont gardées telles qu'écrites, tirets compris. Les
définitions sont celles que lit CatalogReader, telles que les décrit la page du catalogue de tilttek/collections.
Ce qui échoue à la compilation du conteneur : une définition ou une référence erronée dans le catalogue, un fuseau
horaire qui n'en est pas un, une date fixe qui n'en est pas une, une date calculée que phil/almanac ne sait pas lire
— ou toute date calculée sans phil/almanac —, un catalogue configuré ici avec catalog: doctrine, et un objet du
jour activé sans verbes.
Le salt est un secret : qui le connaît, avec le catalogue, calcule l'objet de chaque jour à venir. Donnez-lui au moins
32 octets aléatoires tirés d'une variable d'environnement ou d'un secret, ou omettez-le : le sel est alors une étiquette
et kernel.secret. Un salt de moins de 32 octets est refusé. Changez le salt, et les jours libres du calendrier
tirent d'autres objets ; les jours déjà générés gardent les leurs.
Les services ne gardent aucun état entre les requêtes : ils sont sûrs dans un worker. Les stockages en mémoire, pour les tests, se vident quand le noyau se réinitialise.