2017 © Pedro PelĂĄez
 

symfony-bundle trophy-bundle

A simple trophy bundle for Symfony

image

vectorxhd/trophy-bundle

A simple trophy bundle for Symfony

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

TrophyBundle

Ce bundle est une "amélioration" du tutoriel de grafikart, (*1)

Installation

$ composer require vectorxhd/trophy-bundle

Configuration

<?php
// app/AppKernel.php
public function registerBundles()
{
    $bundles = [
        // ...
        new VectorXHD\TrophyBundle\VectorXHDTrophyBundle(),
    ];
}
# app/config/config.yml
vectorxhd_trophy:  
    user_class: AppBundle\Entity\User

Il faut aussi implémenter UserTrophyInterface sur votre entité user_class, (*2)

Mettre a jour la base de donnée

$ php bin/console doctrine:schema:update --force

Ajouter un badge

Voici l'exemple d'un badge utiliser pour les commentaire, (*3)

$badge = new Badge();  
$badge->setName("Premier badge");  
$badge->setActionName('comment');  
$badge->setActionCount(1);

Exemple d'utilisation

// Recuperer le manager
/** @var TrophyManager $trophyManager */  
$trophyManager = $this->get('vectorxhd_trophy.manager.trophy');

// Debloquage d'un trophée
$trophyManager->checkAndUnlock($user, 'comment', $commentsUserCount);

La méthode checkAndUnlock a besoin de, (*4)

  • L'instance de l'utilisateur ($this->getUser();)
  • Le nom de l'action
  • Le nombre de fois que l'action c'est produite

Dans cette exemple $commentsUserCount correspond qu nombre de commentaire poser par l'utilisateur., (*5)

ÉvĂ©nement

Il y a deux événement dispatch, (*6)

  • TrophyUnlockedEvent::PRE_CREATE
  • TrophyUnlockedEvent::POST_CREATE

Cette événement dispose de plusieurs getter - getBadgeUnlock - getBadge - getUser, (*7)

Todo

  • Ajouter des test
  • ~~Ajouter le bundle sur packagist~~
  • Tester sur plusieurs version de symfony

The Versions