original_string: public static function instance($forcereload = false) {
          global $CFG;
          if ($forcereload || self::$instance === null) {
              // Initialise a new factory to facilitate our needs.
              if (defined('CACHE_DISABLE_ALL') && CACHE_DISABLE_ALL !== false) {
                  // The cache has been disabled. Load disabledlib and start using the factory designed to handle this
                  // situation. It will use disabled alternatives where available.
                  require_once($CFG->dirroot.'/cache/disabledlib.php');
                  self::$instance = new cache_factory_disabled();
              } else if ((defined('PHPUNIT_TEST') && PHPUNIT_TEST) || defined('BEHAT_SITE_RUNNING')) {
                  // We're using the test factory.
                  require_once($CFG->dirroot.'/cache/tests/fixtures/lib.php');
                  self::$instance = new cache_phpunit_factory();
                  if (defined('CACHE_DISABLE_STORES') && CACHE_DISABLE_STORES !== false) {
                      // The cache stores have been disabled.
                      self::$instance->set_state(self::STATE_STORES_DISABLED);
                  }
              } else {
                  // We're using the regular factory.
                  self::$instance = new cache_factory();
                  if (defined('CACHE_DISABLE_STORES') && CACHE_DISABLE_STORES !== false) {
                      // The cache stores have been disabled.
                      self::$instance->set_state(self::STATE_STORES_DISABLED);
                  }
              }
          }
          return self::$instance;
      }
code: public static function instance($forcereload = false) {
          global $CFG;
          if ($forcereload || self::$instance === null) {
              // Initialise a new factory to facilitate our needs.
              if (defined('CACHE_DISABLE_ALL') && CACHE_DISABLE_ALL !== false) {
                  // The cache has been disabled. Load disabledlib and start using the factory designed to handle this
                  // situation. It will use disabled alternatives where available.
                  require_once($CFG->dirroot.'/cache/disabledlib.php');
                  self::$instance = new cache_factory_disabled();
              } else if ((defined('PHPUNIT_TEST') && PHPUNIT_TEST) || defined('BEHAT_SITE_RUNNING')) {
                  // We're using the test factory.
                  require_once($CFG->dirroot.'/cache/tests/fixtures/lib.php');
                  self::$instance = new cache_phpunit_factory();
                  if (defined('CACHE_DISABLE_STORES') && CACHE_DISABLE_STORES !== false) {
                      // The cache stores have been disabled.
                      self::$instance->set_state(self::STATE_STORES_DISABLED);
                  }
              } else {
                  // We're using the regular factory.
                  self::$instance = new cache_factory();
                  if (defined('CACHE_DISABLE_STORES') && CACHE_DISABLE_STORES !== false) {
                      // The cache stores have been disabled.
                      self::$instance->set_state(self::STATE_STORES_DISABLED);
                  }
              }
          }
          return self::$instance;
      }
code_tokens: public static function instance ( $ forcereload = false ) { global $ CFG ; if ( $ forcereload || self :: $ instance === null ) { // Initialise a new factory to facilitate our needs. if ( defined ( 'CACHE_DISABLE_ALL' ) && CACHE_DISABLE_ALL !== false ) { // The cache has been disabled. Load disabledlib and start using the factory designed to handle this // situation. It will use disabled alternatives where available. require_once ( $ CFG -> dirroot . '/cache/disabledlib.php' ) ; self :: $ instance = new cache_factory_disabled ( ) ; } else if ( ( defined ( 'PHPUNIT_TEST' ) && PHPUNIT_TEST ) || defined ( 'BEHAT_SITE_RUNNING' ) ) { // We're using the test factory. require_once ( $ CFG -> dirroot . '/cache/tests/fixtures/lib.php' ) ; self :: $ instance = new cache_phpunit_factory ( ) ; if ( defined ( 'CACHE_DISABLE_STORES' ) && CACHE_DISABLE_STORES !== false ) { // The cache stores have been disabled. self :: $ instance -> set_state ( self :: STATE_STORES_DISABLED ) ; } } else { // We're using the regular factory. self :: $ instance = new cache_factory ( ) ; if ( defined ( 'CACHE_DISABLE_STORES' ) && CACHE_DISABLE_STORES !== false ) { // The cache stores have been disabled. self :: $ instance -> set_state ( self :: STATE_STORES_DISABLED ) ; } } } return self :: $ instance ; }
docstring: Returns an instance of the cache_factor method.
  
  @param bool $forcereload If set to true a new cache_factory instance will be created and used.
  @return cache_factory
docstring_tokens: Returns an instance of the cache_factor method .