PSR-18 compliant package for interfacing with the Challonge API.
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
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');
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.
As the package is fully type-hinted, everything should be self documenting, however there is documentation in the wiki.