[ 'belongs-to-one' => 'Model\CorporationModel' ], 'allianceId' => [ 'belongs-to-one' => 'Model\AllianceModel' ], 'characterLog' => [ 'has-one' => ['Model\CharacterLogModel', 'characterId'] ] ]; /** * get character data * @param bool|false $addCharacterLogData * @return object */ public function getData($addCharacterLogData = false){ // check if there is cached data // temporary disabled (performance test) $characterData = null; //$this->getCacheData(); if(is_null($characterData)){ // no cached character data found $characterData = (object) []; $characterData->id = $this->id; $characterData->name = $this->name; if($addCharacterLogData){ if($logModel = $this->getLog()){ $characterData->log = $logModel->getData(); } } // check for corporation if($corporation = $this->getCorporation()){ $characterData->corporation = $corporation->getData(); } // check for alliance if($alliance = $this->getAlliance()){ $characterData->alliance = $alliance->getData(); } // max caching time for a system // the cached date has to be cleared manually on any change // this includes system, connection,... changes (all dependencies) $this->updateCacheData($characterData, '', 300); } return $characterData; } /** * check whether this character has a corporation * @return bool */ public function hasCorporation(){ $hasCorporation = false; if($this->corporationId){ $hasCorporation = true; } return $hasCorporation; } /** * check whether this character has an alliance * @return bool */ public function hasAlliance(){ $hasAlliance = false; if($this->allianceId){ $hasAlliance = true; } return $hasAlliance; } /** * get the corporation for this user * @return mixed|null */ public function getCorporation(){ $corporation = null; if($this->hasCorporation()){ $corporation = $this->corporationId; } return $corporation; } /** * get the alliance of this user * @return mixed|null */ public function getAlliance(){ $alliance = null; if($this->hasAlliance()){ $alliance = $this->allianceId; } return $alliance; } /** * get the character log entry for this character * @return bool|null */ public function getLog(){ $characterLog = false; if( is_object($this->characterLog) && !$this->characterLog->dry() ){ $characterLog = $this->characterLog; } return $characterLog; } }