/** * @param int|Player $player_or_id * @return Player */ protected function player($player_or_id) { if ($player_or_id instanceof Player) { return $player_or_id; } return $this->playerManager->getPlayer($player_or_id); }
/** * @inheritDoc */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) { /** @var WizardData $data */ $data = $event->getData(); $form = $event->getForm(); $groupChoices = array(); $numberOfGroups = $data->getNumberOfGroups(); for ($group = 0; $group < $numberOfGroups; ++$group) { $groupChoices[$group] = 'group ' . ($group + 1); } foreach ($this->playerManager->getPlayers() as $player) { $form->add('player_' . $player->getId(), 'choice', array('property_path' => 'players[' . $player->getId() . ']', 'choices' => $groupChoices, 'empty_value' => 'no group', 'required' => false, 'label' => $player->getName())); } }); }
/** * @param PlayerManager $playerManager to resolve player-IDs * @return Tournament * @throws \Exception */ public function createTournament(PlayerManager $playerManager) { if ($this->preset == self::PRESET_TEST) { $setup = PresetTesting::create($this->getPlayerIdsGrouped()); } elseif ($this->preset == self::PRESET_SIMPLE) { $setup = PresetSimple::create($this->getPlayerIdsGrouped()); // TODO implement missing presets // } elseif ($this->preset == self::PRESET_FULL) { // $setup = PresetFull::create($this->numberOfGroups); // } elseif ($this->preset == self::PRESET_LEAGUE) { // $setup = PresetLeague::create($this->numberOfGroups); } else { throw new \Exception('TODO'); } $tournament = new Tournament(); $tournament->setName($this->name); $tournament->setSetup($setup); $tournament->setBoards($this->boards); $players = array(); foreach ($this->getPlayerIds() as $playerId) { $players[] = $playerManager->getPlayer($playerId); } $tournament->setPlayers($players); return $tournament; }