teamreflex / ChallongePHP

Package for interfacing with the Challonge API.
MIT License
24 stars 9 forks source link
bracket challonge php team-reflex

ChallongePHP

Test Latest Version Downloads

PSR-18 compliant package for interfacing with the Challonge API.

Installation

Refer to the table for PHP version compatibility:

ChallongePHP Ver. Compatible PHP
^5.0 8.1 - 8.2
^4.0 8.0 - 8.1
^3.0 7.4 - 8.0
^2.1 7.4
^2.0 7.4
^1.0 7.0 - 7.4

Install via composer:

composer require team-reflex/challonge-php:version

Usage

As the package is PSR-18 compliant, it does not come with an HTTP client by default.

You can use a client such as Guzzle, and pass an instance of it when instantiating:

$http = new GuzzleHttp\Client();
$challonge = new Challonge($http, 'api_key_here', true);

By default, the package maps the keys of any input, as Challonge requires its input to be in a format such as:

$tournament = $challonge->createTournament([
    'tournament[name]' => 'test'
]);

Which means you are able to use the package without prefixing your keys:

$tournament = $challonge->createTournament([
    'name' => 'test'
]);

You can change the third argument to false to disable this mapping if you would prefer to do it yourself.

Now you're ready to make requests:

$tournament = $challonge->fetchTournament('challongephptest');

API Updates

Challonge does not lock their API and has been consistently adding new fields to objects, thus breaking strongly typed DTOs.

As of 3.0.4, all three DTOs have been marked to ignore missing fields. If Challonge adds a new field, it will no longer throw a DataTransferObjectError, but the DTO will also however not contain that new field.

Documentation

As the package is fully type-hinted, everything should be self documenting, however there is documentation in the wiki.

Contact