/** * Constructor * @since Version 3.9.1 * @param int|string $id */ public function __construct($id = null) { parent::__construct(); $this->Module = new Module("images.competitions"); $this->Module->namespace = sprintf("%s.competition", $this->Module->namespace); $id = Utility\CompetitionUtility::getIDFromSlug($id); if ($id = filter_var($id, FILTER_VALIDATE_INT)) { $this->cachekey = sprintf("railpage:photo.comp=%d", $id); $this->id = $id; $this->load(); } }
/** * Create a photo competition object from an ID or URL slug * @since Version 3.10.0 * @param string|int $id * @return \Railpage\Images\Competition */ public static function CreatePhotoComp($id) { //$Database = AppCore::GetDatabase(); $cacheHandler = AppCore::getRedis(); $Registry = Registry::getInstance(); if (!filter_var($id, FILTER_VALIDATE_INT)) { $lookup = Utility\CompetitionUtility::getIDFromSlug($id); if (!filter_var($lookup, FILTER_VALIDATE_INT)) { throw new Exception("Could not find a competition ID from URL slug " . $id); } $id = $lookup; } $regkey = sprintf(Competition::CACHE_KEY, $id); try { $Competition = $Registry->get($regkey); } catch (Exception $e) { #if (!$Competition = $cacheHandler->fetch($regkey)) { $Competition = new Competition($id); $cacheHandler->save($regkey, $Competition, strtotime("+1 day")); #} $Registry->set($regkey, $Competition); } return $Competition; }