chasecrawford/ratings

This package is abandoned and no longer maintained. No replacement package was suggested.
There is no license information available for the latest version (1.0.0) of this package.

A PHP class which implements the Elo rating system & Rating Percentage index

1.0.0 2023-01-11 00:00 UTC

This package is not auto-updated.

Last update: 2023-04-19 19:47:09 UTC


README

A PHP class which implements the Elo rating system & Rating Percentage index.

Install

composer require chasecrawford/ratings

Using Elo

Calculate a new elo rating for a competitor after a result

use ChaseCrawford\EloRating\Elo;

$newEloRating = Elo::calc(
    1000,   // (float) competitor elo rating
    1000,   // (float) opponent's elo rating
    71,     // (int) competitor score
    70,     // (int) opponent score
    0       // (int) number of matches competitor played previously (optional)
)

Find the elo ratings for all competitors from a group of results

$results = [...];
$elo = new Elo();

foreach($results as $result) {
  $elo->addResult(
       $result['competitorOneName'],  // (string) unique name for competitor 1
       $result['competitorTwoName'],  // (string) unique name for competitor 2
       $result['competitorOneScore'], // (int) score for competitor 1
       $result['competitorTwoScore']  // (int) score for competitor 2
  )
}

print_r($elo->getCompetitors())

Using RPI

use ChaseCrawford\RatingPercentageIndex\RPI;

$results = [...];
$rpi = new RPI();

foreach($results as $result) {
  $rpi->addResult(
       $result['competitorOneName'],  // (string) unique name for competitor 1
       $result['competitorTwoName'],  // (string) unique name for competitor 2
       $result['competitorOneScore'], // (int) score for competitor 1
       $result['competitorTwoScore'], // (int) score for competitor 2
  )
}

print_r($rpi->getCompetitors())