PHPackages                             avoo/elo-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. avoo/elo-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

avoo/elo-bundle
===============

Integration of the Elo library calculator

0.1.0(10y ago)039MITPHPPHP &gt;=5.3.3

Since Dec 4Pushed 10y ago2 watchersCompare

[ Source](https://github.com/avoo/EloBundle)[ Packagist](https://packagist.org/packages/avoo/elo-bundle)[ RSS](/packages/avoo-elo-bundle/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

EloBundle
=========

[](#elobundle)

[!\[Build Status\] (https://scrutinizer-ci.com/g/avoo/EloBundle/badges/build.png?b=master)](https://scrutinizer-ci.com/g/avoo/EloBundle/build-status/master)[!\[Scrutinizer Code Quality\] (https://scrutinizer-ci.com/g/avoo/EloBundle/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/avoo/EloBundle/?branch=master)[!\[Latest Stable Version\] (https://poser.pugx.org/avoo/elo-bundle/v/stable.svg)](https://packagist.org/packages/avoo/elo-bundle)[!\[License\] (https://poser.pugx.org/avoo/elo-bundle/license.svg)](https://packagist.org/packages/avoo/elo-bundle)

Elo bundle for Symfony 2

- [Installation](#installation)
- [Configuration](#default-configuration)
- [Class implementation](#class-implementation)
    - [Elo player class](#elo-player-class)
    - [Elo versus class](#elo-versus-class)
    - [User class](#user-class)
- [Default Usage](#default-usage)

Installation
------------

[](#installation)

Require [`avoo/elo-bundle`](https://packagist.org/packages/avoo/elo-bundle) into your `composer.json` file:

```
{
    "require": {
        "avoo/elo-bundle": "~0.1"
    }
}
```

The elo bundle use [`StofDoctrineExtensionsBundle`](https://github.com/stof/StofDoctrineExtensionsBundle)

Register the bundle in `app/AppKernel.php`:

```
// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new Avoo\EloBundle\AvooEloBundle(),
        new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
    );
}
```

Default Configuration
---------------------

[](#default-configuration)

```
# app/config/config.yml

# Doctrine Configuration
doctrine:
    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        entity_managers:
            default:
                auto_mapping: true
                mappings:
                    gedmo_loggable:
                        type: annotation
                        prefix: Gedmo\Loggable\Entity
                        dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity"
                        alias: GedmoLoggable # (optional) it will default to the name set for the mappingmapping
                        is_bundle: false

stof_doctrine_extensions:
    orm:
        default:
            loggable: true
            timestampable: true
```

Class implementation
--------------------

[](#class-implementation)

#### Elo player class

[](#elo-player-class)

**YAML**

```
# src/AppBundle/Resources/config/doctrine/EloPlayer.orm.yml
AppBundle\Entity\EloPlayer:
    type:  entity
    table: elo_player
    id:
        id:
            type: integer
            generator:
                strategy: AUTO
    oneToOne:
        user:
            targetEntity: AppBundle\Entity\User
            inversedBy: eloPlayer
            joinColumn:
                name: user_id
                referencedColumnName: id
```

**XML**

```

```

**Annotation**

```
namespace Avoo\EloBundle\Entity;

use Avoo\EloBundle\Entity\EloPlayer as BaseEloPlayer;
use Doctrine\ORM\Mapping as ORM;

class EloPlayer extends BaseEloPlayer
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\OneToOne(targetEntity="AppBundle\Entity\User", inversedBy="eloPlayer")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    protected $user;
}
```

#### Elo versus class

[](#elo-versus-class)

**YAML**

```
# src/AppBundle/Resources/config/doctrine/EloVersus.orm.yml
AppBundle\Entity\Eloversus:
    type:  entity
    table: elo_versus
    id:
        id:
            type: integer
            generator:
                strategy: AUTO
    manyToOne:
        playerA:
            targetEntity: AppBundle\Entity\EloPlayer
            joinColumn:
                name: player_a
                referencedColumnName: id
        playerB:
            targetEntity: AppBundle\Entity\EloPlayer
            joinColumn:
                name: player_b
                referencedColumnName: id
```

**XML**

```

```

**Annotation**

```
namespace Avoo\EloBundle\Entity;

use Avoo\EloBundle\Entity\EloVersus as BaseEloVersus;
use Doctrine\ORM\Mapping as ORM;

class EloVersus extends BaseEloVersus
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Player")
     * @ORM\JoinColumn(name="player_a", referencedColumnName="id")
     */
    protected $playerA;

    /**
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Player")
     * @ORM\JoinColumn(name="player_b", referencedColumnName="id")
     */
    protected $playerB;
}
```

#### User class

[](#user-class)

**Warning** You need to implement `Avoo/Elo/Model/EloUserInterface`

```
use Avoo\Elo\Model\EloUserInterface;

class User implements EloUserInterface
{
    /**
     * @var EloPlayerInterface $eloPlayer
     */
    protected $eloPlayer;

    /**
     * Get elo player
     *
     * @return EloPlayerInterface
     */
    public function getEloPlayer()
    {
        return $this->eloPlayer;
    }
}
```

**YAML**

```
# src/AppBundle/Resources/config/doctrine/User.orm.yml
AppBundle\Entity\User:
    type:  entity
    table: elo_user
    id:
        id:
            type: integer
            generator:
                strategy: AUTO
    oneToOne:
        eloPlayer:
            targetEntity: AppBundle\Entity\EloPlayer
            mappedBy: user
```

**XML**

```

```

**Annotation**

```
