autoload.module in Autoload 7.2
Same filename and directory in other branches
File
autoload.moduleView source
<?php
/**
 * @file
 * PHP 5.3+ autoloader for objects.
 */
require_once 'autoload.cache.inc';
autoload();
/**
 * Returns the autoloading class map of a settled autoloader.
 *
 * @param bool $rebuild
 *   Tells whether the autoloading class map has to be rebuilt.
 *
 * @return \AutoloadCache
 *   The autoloading class map.
 */
function autoload($rebuild = FALSE) {
  static $callback;
  $map =& drupal_static(__FUNCTION__);
  if (NULL === $map) {
    $map = new \AutoloadCache(variable_get('autoload_file', sprintf('%s/%s.php', DRUPAL_ROOT, __FUNCTION__)));
    // Assume the autoloading mapping needs to re-registered if someone
    // requires this.
    $callback = NULL;
  }
  if ($rebuild) {
    if (NULL !== $callback && spl_autoload_unregister($callback)) {
      // Our autoloader has been deregistered and its updated state needs
      // to be registered repeatedly.
      $callback = NULL;
    }
    $map
      ->rebuild();
  }
  if (NULL === $callback) {
    // Do not set an autoloading callback in a case when something went wrong.
    // An exception might be thrown during module installation when no database
    // schema available yet.
    try {
      $modules = module_list();
      $callback = function ($namespace) use ($map, $modules) {
        if (isset($map[$namespace])) {
          // Report about the problem but load class in any way.
          if (!isset($modules[$map[$namespace]['provider']]) && 'cli' !== PHP_SAPI) {
            trigger_error(sprintf('You are autoloading the "%s", provided by "%s" that is currently disabled!', $namespace, $map[$namespace]['provider']), E_USER_WARNING);
          }
          // The "DRUPAL_ROOT" constant is not prepended to allow including
          // files relative to the Drupal root as well as those, that are
          // located outside.
          require_once $map[$namespace]['file'];
        }
      };
      // Make this autoloader first to omit execution of Drupal ones.
      spl_autoload_register($callback, TRUE, TRUE);
    } catch (Exception $e) {
    }
  }
  return $map;
}
/**
 * Get list of file extensions which allowed for autoloading.
 *
 * @return string[]
 *   List of extensions.
 */
function autoload_extensions() {
  $extensions = array_filter(explode(',', spl_autoload_extensions()), 'trim');
  // Make sure the basic extensions are registered!
  $extensions[] = '.php';
  $extensions[] = '.inc';
  return array_unique($extensions);
}Functions
| Name   | Description | 
|---|---|
| autoload | Returns the autoloading class map of a settled autoloader. | 
| autoload_extensions | Get list of file extensions which allowed for autoloading. | 
