xautoload.module in X Autoload 7
Same filename and directory in other branches
File
xautoload.moduleView source
<?php
/**
 * Implements hook_boot()
 */
function xautoload_boot() {
  // TODO: We want a cached version of this.
  spl_autoload_register('_xautoload_autoload');
}
/**
 * Autoload callback for classes and interfaces, registered in hook_boot().
 */
function _xautoload_autoload($name) {
  $file = _xautoload_finder()
    ->findFile($name);
  if ($file) {
    require_once $file;
  }
}
/**
 * Static registry for the finder object.
 */
function _xautoload_finder() {
  static $_finder;
  if (!isset($_finder)) {
    $modules = module_list();
    foreach ($modules as $module => $m) {
      $path = drupal_get_path('module', $module) . '/lib/';
      if (is_dir($path)) {
        $modules[$module] = $path;
      }
    }
    // Autoload is not ready yet, this is why we include this one explicitly.
    module_load_include('php', 'xautoload', 'lib/ClassFinder');
    $_finder = new xautoload_ClassFinder($modules);
  }
  return $_finder;
}
/**
 * Implements hook_registry_files_alter()
 *
 * Support wildcard syntax in the files[] setting in your module's info file.
 */
function xautoload_registry_files_alter(&$files, $modules) {
  $orig = $files;
  // The class file is loaded using the regular uncached xautoload autoload.
  $rec_scan = new xautoload_RecursiveScan($files);
  foreach ($files as $path => $file) {
    $rec_scan
      ->check($path, $file);
  }
}Functions
| Name   | Description | 
|---|---|
| xautoload_boot | Implements hook_boot() | 
| xautoload_registry_files_alter | Implements hook_registry_files_alter() | 
| _xautoload_autoload | Autoload callback for classes and interfaces, registered in hook_boot(). | 
| _xautoload_finder | Static registry for the finder object. | 
