Export - Introduction
TournamentGenerator provides a simple classes to help export your tournament and save it. This could be used to create a persistent storage for your Tournament.
There are 2 main types of exporters available: \TournamentGenerator\Export\Hierarchy
and \TournamentGenerator\Export\Single
.
The Hierarchy takes care of exporting multiple objects at once. It can export setup of any HierarchyBase object, its games and teams. There is a general Exporter class, that can export any one of these, and 3 specialized exporters: GamesExporter, TeamsExporter and SetupsExporter.
The Single exports only one object at a time. Currently, you can export a Game using a GameExporter, and a Team using a TeamExporter.
Basic export example
use TournamentGenerator\Tournament;
use TournamentGenerator\Export\Hierarchy\Exporter;
$tournament = new Tournament('My tournament');
// Some tournament setup...
$export = Exporter::export($tournament); // This will export all teams and games from the tournament
$export = $tournament->export()->get(); // This will also export all teams and games from the tournament
print_r($export);
Will print something like this:
Array
(
[teams] => Array
(
[0] => stdClass Object
(
[id] => 0
[name] => Team 0
)
[1] => stdClass Object
(
[id] => 1
[name] => Team 1
)
[2] => stdClass Object
(
[id] => 2
[name] => Team 2
)
)
[games] => Array
(
[0] => stdClass Object
(
[id] => 1
[teams] => Array
(
[0] => 0
[1] => 1
)
[scores] => Array
(
[0] => Array
(
[score] => 100
[points] => 0
[type] => loss
)
[1] => Array
(
[score] => 200
[points] => 3
[type] => win
)
)
)
[1] => stdClass Object
(
[id] => 2
[teams] => Array
(
[0] => 0
[1] => 2
)
[scores] => Array
(
[0] => Array
(
[score] => 300
[points] => 3
[type] => win
)
[2] => Array
(
[score] => 200
[points] => 0
[type] => loss
)
)
)
[2] => stdClass Object
(
[id] => 3
[teams] => Array
(
[0] => 1
[1] => 2
)
[scores] => Array
(
[1] => Array
(
[score] => 0
[points] => 0
[type] => loss
)
[2] => Array
(
[score] => 100
[points] => 3
[type] => win
)
)
)
)
)
Export JSON
You can also export your tournament as JSON string.
use TournamentGenerator\Tournament;
use TournamentGenerator\Export\Hierarchy\Exporter;
$tournament = new Tournament('My tournament');
// Some tournament setup...
$export = Exporter::start($tournament)->getJson();
$export = $tournament->export()->getJson();
Export with setup
use TournamentGenerator\Tournament;
use TournamentGenerator\Export\Hierarchy\Exporter;
$tournament = new Tournament('My tournament');
// Some tournament setup...
$export = Exporter::start($tournament)->withSetup()->get(); // This will export all teams, games and setup from the tournament
$export = $tournament->export()->withSetup()->get(); // This will also export all teams, games and setup from the tournament
print_r($export);
This will print something like this:
Array
(
[teams] => Array
(
[0] => stdClass Object
(
[id] => 0
[name] => Team 0
)
[1] => stdClass Object
(
[id] => 1
[name] => Team 1
)
[2] => stdClass Object
(
[id] => 2
[name] => Team 2
)
[3] => stdClass Object
(
[id] => 3
[name] => Team 3
)
[4] => stdClass Object
(
[id] => 4
[name] => Team 4
)
[5] => stdClass Object
(
[id] => 5
[name] => Team 5
)
[6] => stdClass Object
(
[id] => 6
[name] => Team 6
)
[7] => stdClass Object
(
[id] => 7
[name] => Team 7
)
)
[games] => Array
(
[0] => stdClass Object
(
[id] => 1
[teams] => Array
(
[0] => 0
[1] => 1
)
[scores] => Array
(
[0] => Array
(
[score] => 100
[points] => 0
[type] => loss
)
[1] => Array
(
[score] => 200
[points] => 3
[type] => win
)
)
)
[1] => stdClass Object
(
[id] => 2
[teams] => Array
(
[0] => 2
[1] => 3
)
[scores] => Array
(
[2] => Array
(
[score] => 0
[points] => 0
[type] => loss
)
[3] => Array
(
[score] => 500
[points] => 3
[type] => win
)
)
)
[2] => stdClass Object
(
[id] => 3
[teams] => Array
(
[0] => 0
[1] => 2
)
[scores] => Array
(
[0] => Array
(
[score] => 300
[points] => 3
[type] => win
)
[2] => Array
(
[score] => 200
[points] => 0
[type] => loss
)
)
)
[3] => stdClass Object
(
[id] => 4
[teams] => Array
(
[0] => 1
[1] => 3
)
[scores] => Array
(
[1] => Array
(
[score] => 200
[points] => 1
[type] => draw
)
[3] => Array
(
[score] => 200
[points] => 1
[type] => draw
)
)
)
[4] => stdClass Object
(
[id] => 5
[teams] => Array
(
[0] => 0
[1] => 3
)
[scores] => Array
(
[0] => Array
(
[score] => 800
[points] => 3
[type] => win
)
[3] => Array
(
[score] => 200
[points] => 0
[type] => loss
)
)
)
[5] => stdClass Object
(
[id] => 6
[teams] => Array
(
[0] => 1
[1] => 2
)
[scores] => Array
(
[1] => Array
(
[score] => 0
[points] => 0
[type] => loss
)
[2] => Array
(
[score] => 100
[points] => 3
[type] => win
)
)
)
[6] => stdClass Object
(
[id] => 7
[teams] => Array
(
[0] => 4
[1] => 5
)
[scores] => Array
(
[4] => Array
(
[score] => 100
[points] => 1
[type] => draw
)
[5] => Array
(
[score] => 100
[points] => 1
[type] => draw
)
)
)
[7] => stdClass Object
(
[id] => 8
[teams] => Array
(
[0] => 6
[1] => 7
)
[scores] => Array
(
[6] => Array
(
[score] => 0
[points] => 0
[type] => loss
)
[7] => Array
(
[score] => 500
[points] => 3
[type] => win
)
)
)
[8] => stdClass Object
(
[id] => 9
[teams] => Array
(
[0] => 4
[1] => 6
)
[scores] => Array
(
[4] => Array
(
[score] => 100
[points] => 1
[type] => draw
)
[6] => Array
(
[score] => 100
[points] => 1
[type] => draw
)
)
)
[9] => stdClass Object
(
[id] => 10
[teams] => Array
(
[0] => 5
[1] => 7
)
[scores] => Array
(
[5] => Array
(
[score] => 800
[points] => 3
[type] => win
)
[7] => Array
(
[score] => 0
[points] => 0
[type] => loss
)
)
)
[10] => stdClass Object
(
[id] => 11
[teams] => Array
(
[0] => 4
[1] => 7
)
[scores] => Array
(
[4] => Array
(
[score] => 600
[points] => 3
[type] => win
)
[7] => Array
(
[score] => 200
[points] => 0
[type] => loss
)
)
)
[11] => stdClass Object
(
[id] => 12
[teams] => Array
(
[0] => 5
[1] => 6
)
[scores] => Array
(
[5] => Array
(
[score] => 300
[points] => 3
[type] => win
)
[6] => Array
(
[score] => 200
[points] => 0
[type] => loss
)
)
)
)
[tournament] => stdClass Object
(
[type] => general
[name] => Tournament
[skip] =>
[timing] => stdClass Object
(
[play] => 0
[gameWait] => 0
[categoryWait] => 0
[roundWait] => 0
[expectedTime] => 0
)
[categories] => Array
(
)
[rounds] => Array
(
[0] => 1
[1] => 2
)
[groups] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[teams] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
)
[games] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 11
[11] => 12
)
)
[categories] => Array
(
)
[rounds] => Array
(
[1] => stdClass Object
(
[id] => 1
[name] => Round 1
[skip] =>
[played] => 1
[groups] => Array
(
[0] => 1
[1] => 2
)
[teams] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
)
[games] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 11
[11] => 12
)
)
[2] => stdClass Object
(
[id] => 2
[name] => Round 2
[skip] =>
[played] =>
[groups] => Array
(
[0] => 3
[1] => 4
)
[teams] => Array
(
)
[games] => Array
(
)
)
)
[groups] => Array
(
[1] => stdClass Object
(
[id] => 1
[name] => Group 1
[type] => Robin-Robin group type
[skip] =>
[points] => stdClass Object
(
[win] => 3
[loss] => 0
[draw] => 1
[second] => 2
[third] => 1
[progression] => 50
)
[played] => 1
[inGame] => 2
[maxSize] => 4
[teams] => Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
)
[games] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
)
[2] => stdClass Object
(
[id] => 2
[name] => Group 2
[type] => Robin-Robin group type
[skip] =>
[points] => stdClass Object
(
[win] => 3
[loss] => 0
[draw] => 1
[second] => 2
[third] => 1
[progression] => 50
)
[played] => 1
[inGame] => 2
[maxSize] => 4
[teams] => Array
(
[0] => 4
[1] => 5
[2] => 6
[3] => 7
)
[games] => Array
(
[0] => 7
[1] => 8
[2] => 9
[3] => 10
[4] => 11
[5] => 12
)
)
[3] => stdClass Object
(
[id] => 3
[name] => Group 3
[type] => Robin-Robin group type
[skip] =>
[points] => stdClass Object
(
[win] => 3
[loss] => 0
[draw] => 1
[second] => 2
[third] => 1
[progression] => 50
)
[played] =>
[inGame] => 2
[maxSize] => 4
[teams] => Array
(
)
[games] => Array
(
)
)
[4] => stdClass Object
(
[id] => 4
[name] => Group 4
[type] => Robin-Robin group type
[skip] =>
[points] => stdClass Object
(
[win] => 3
[loss] => 0
[draw] => 1
[second] => 2
[third] => 1
[progression] => 50
)
[played] =>
[inGame] => 2
[maxSize] => 4
[teams] => Array
(
)
[games] => Array
(
)
)
)
[progressions] => Array
(
[0] => stdClass Object
(
[from] => 1
[to] => 3
[offset] => 0
[length] => 2
[progressed] =>
[filters] => Array
(
)
)
[1] => stdClass Object
(
[from] => 1
[to] => 4
[offset] => -2
[length] =>
[progressed] =>
[filters] => Array
(
)
)
[2] => stdClass Object
(
[from] => 2
[to] => 3
[offset] => 0
[length] => 2
[progressed] =>
[filters] => Array
(
)
)
[3] => stdClass Object
(
[from] => 2
[to] => 4
[offset] => -2
[length] =>
[progressed] =>
[filters] => Array
(
)
)
)
)