/** * @param $user_session_id * @return null|int Returns null if session not found or has no user */ private static function getSessionUserIdBySessionId($user_session_id) { $user_id = \OLOG\Cache\CacheWrapper::get(self::sessionCacheKey($user_session_id)); if (!$user_id) { //error_log('Auth: no user retrieved for session ' . $user_session_id); return null; } //обновляем куку и сессию в мемекеше, от момента последнегно запроса к сайту self::updateUserSession($user_id, $user_session_id); return $user_id; }
/** * Создает новый объект указанного класса и вызывает для него load(). * @param $class_name string Имя класса, объект которого создаем. * @param $object_id string Идентификатор объекта * @return null|object Если удалось создать и загрузить объект - возвращается этот объект. Иначе (например, не удалось загрузить) - возвращает null. * @throws \Exception */ public static function createAndLoadObject($class_name, $object_id) { $cache_key = self::getObjectCacheId($class_name, $object_id); $cached_obj = \OLOG\Cache\CacheWrapper::get($cache_key); if ($cached_obj !== false) { return $cached_obj; } $obj = new $class_name(); $object_is_loaded = call_user_func_array(array($obj, "load"), array($object_id)); if (!$object_is_loaded) { return null; } // store to cache $cache_ttl_seconds = 60; if ($obj instanceof \OLOG\Model\InterfaceCacheTtlSeconds) { $cache_ttl_seconds = $obj->getCacheTtlSeconds(); } \OLOG\Cache\CacheWrapper::set($cache_key, $obj, $cache_ttl_seconds); return $obj; }