当前位置: 首页>>代码示例>>PHP>>正文


PHP context::systemcontext方法代码示例

本文整理汇总了PHP中context::systemcontext方法的典型用法代码示例。如果您正苦于以下问题:PHP context::systemcontext方法的具体用法?PHP context::systemcontext怎么用?PHP context::systemcontext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在context的用法示例。


在下文中一共展示了context::systemcontext方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: instance

 /**
  * Returns system context instance.
  *
  * @static
  * @param int $instanceid
  * @param int $strictness
  * @param bool $cache
  * @return context_system context instance
  */
 public static function instance($instanceid = 0, $strictness = MUST_EXIST, $cache = true)
 {
     global $DB;
     if ($instanceid != 0) {
         debugging('context_system::instance(): invalid $id parameter detected, should be 0');
     }
     if (defined('SYSCONTEXTID') and $cache) {
         // dangerous: define this in config.php to eliminate 1 query/page
         if (!isset(context::$systemcontext)) {
             $record = new stdClass();
             $record->id = SYSCONTEXTID;
             $record->contextlevel = CONTEXT_SYSTEM;
             $record->instanceid = 0;
             $record->path = '/' . SYSCONTEXTID;
             $record->depth = 1;
             context::$systemcontext = new context_system($record);
         }
         return context::$systemcontext;
     }
     try {
         // we ignore the strictness completely because system context must except except during install
         $record = $DB->get_record('context', array('contextlevel' => CONTEXT_SYSTEM), '*', MUST_EXIST);
     } catch (dml_exception $e) {
         //table or record does not exist
         if (!during_initial_install()) {
             // do not mess with system context after install, it simply must exist
             throw $e;
         }
         $record = null;
     }
     if (!$record) {
         $record = new stdClass();
         $record->contextlevel = CONTEXT_SYSTEM;
         $record->instanceid = 0;
         $record->depth = 1;
         $record->path = null;
         //not known before insert
         try {
             if ($DB->count_records('context')) {
                 // contexts already exist, this is very weird, system must be first!!!
                 return null;
             }
             if (defined('SYSCONTEXTID')) {
                 // this would happen only in unittest on sites that went through weird 1.7 upgrade
                 $record->id = SYSCONTEXTID;
                 $DB->import_record('context', $record);
                 $DB->get_manager()->reset_sequence('context');
             } else {
                 $record->id = $DB->insert_record('context', $record);
             }
         } catch (dml_exception $e) {
             // can not create context - table does not exist yet, sorry
             return null;
         }
     }
     if ($record->instanceid != 0) {
         // this is very weird, somebody must be messing with context table
         debugging('Invalid system context detected');
     }
     if ($record->depth != 1 or $record->path != '/' . $record->id) {
         // fix path if necessary, initial install or path reset
         $record->depth = 1;
         $record->path = '/' . $record->id;
         $DB->update_record('context', $record);
     }
     if (!defined('SYSCONTEXTID')) {
         define('SYSCONTEXTID', $record->id);
     }
     context::$systemcontext = new context_system($record);
     return context::$systemcontext;
 }
开发者ID:rolandovanegas,项目名称:moodle,代码行数:80,代码来源:accesslib.php


注:本文中的context::systemcontext方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。