private function update(Player $player) { $db = Db::obtain(); $data = array('account_id' => Player::convertId($player->get('steamid'))); $data = array_merge($data, $player->getDataArray()); $db->updatePDO(Db::realTablename('users'), $data, array('steamid' => $player->get('steamid'))); }
public function load() { $db = Db::obtain(); $players = array(); $ids = $this->getIdsString(); if (count($this->_ids) === 0) { return array(); } $result = $db->fetchArrayPDO('SELECT * FROM ' . Db::realTablename('users') . ' WHERE steamid IN (' . $ids . ')', array()); foreach ($result as $r) { $player = new Player(); $player->setArray((array) $r); $players[$player->get('steamid')] = $player; } return $players; }
public function testLoad() { $players = $this->mapper->load(); $this->assertEquals(array(), $players); $this->mapper->addId(Player::convertId(36547811))->addId(Player::convertId(89137399)); $players = $this->mapper->load(); $this->assertTrue($players[Player::convertId(36547811)] instanceof Player); $this->assertTrue($players[Player::convertId(89137399)] instanceof Player); }
/** * @param Match $match * @param bool $lazy if false - update all data, if true - only possible updated data */ public function update(Match $match, $lazy = true) { $db = Db::obtain(); $slots = $match->getAllSlots(); // update common match info $db->updatePDO(Db::realTablename('matches'), $match->getDataArray(), array('match_id' => $match->get('match_id'))); foreach ($slots as $slot) { // update accounts $db->updatePDO(Db::realTablename('users'), array('account_id' => $slot->get('account_id'), 'steamid' => Player::convertId($slot->get('account_id'))), array('account_id' => $slot->get('account_id'))); // update slots if (!$lazy) { $db->updatePDO(Db::realTablename('slots'), $slot->getDataArray(), array('match_id' => $slot->get('match_id'), 'player_slot' => $slot->get('player_slot'))); } } }
/** * @return Player[] */ public function load() { $request = new Request(self::PLAYER_STEAM_URL, array('steamids' => $this->getIdsString())); $playersInfo = $request->send(); if (null === $playersInfo) { return null; } $players = array(); foreach ($playersInfo->players[0] as $playerInfo) { $player = new Player(); $player->setArray((array) $playerInfo); $players[$player->get('steamid')] = $player; } return $players; }
public function testLoad() { $mapperDb = new PlayerMapperDb(); $player = $mapperDb->load(Player::convertId((string) $this->playerId)); $this->assertEquals('test', $player->get('personaname')); }