/** * Get a context instance as an object, from a given context id. * * @static * @param int $id context id * @param int $strictness IGNORE_MISSING means compatible mode, false returned if record not found, debug message if more found; * MUST_EXIST means throw exception if no record found * @return context|bool the context object or false if not found */ public static function instance_by_id($id, $strictness = MUST_EXIST) { global $DB; if (get_called_class() !== 'context' and get_called_class() !== 'context_helper') { // some devs might confuse context->id and instanceid, better prevent these mistakes completely throw new coding_exception('use only context::instance_by_id() for real context levels use ::instance() methods'); } if ($id == SYSCONTEXTID) { return context_system::instance(0, $strictness); } if (is_array($id) or is_object($id) or empty($id)) { throw new coding_exception('Invalid context id specified context::instance_by_id()'); } if ($context = context::cache_get_by_id($id)) { return $context; } if ($record = $DB->get_record('context', array('id' => $id), '*', $strictness)) { return context::create_instance_from_record($record); } return false; }