Viewing file: _autoload.php (1.76 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/** * This file implements a autoloader for simpleSAMLphp. This autoloader * will search for files under the simpleSAMLphp directory. * * @author Olav Morken, UNINETT AS. * @package simpleSAMLphp * @version $Id$ */
/** * Autoload function for simpleSAMLphp. * * It will autoload all classes stored in the lib-directory. * * @param $className The name of the class. */ function SimpleSAML_autoload($className) {
$libDir = dirname(__FILE__) . '/';
/* Special handling for xmlseclibs.php. */ if(in_array($className, array('XMLSecurityKey', 'XMLSecurityDSig', 'XMLSecEnc'), TRUE)) { require_once($libDir . 'xmlseclibs.php'); return; }
/* Handlig of modules. */ if(substr($className, 0, 7) === 'sspmod_') { $modNameEnd = strpos($className, '_', 7); $module = substr($className, 7, $modNameEnd - 7); $moduleClass = substr($className, $modNameEnd + 1);
if(!SimpleSAML_Module::isModuleEnabled($module)) { return; }
$file = SimpleSAML_Module::getModuleDir($module) . '/lib/' . str_replace('_', '/', $moduleClass) . '.php'; } else { $file = $libDir . str_replace('_', '/', $className) . '.php'; }
if(file_exists($file)) { require_once($file); } }
/* Register autoload function for simpleSAMLphp. */ if(function_exists('spl_autoload_register')) { /* Use the spl_autoload_register function if it is available. It should be available * for PHP versions >= 5.1.2. */ spl_autoload_register('SimpleSAML_autoload'); } else {
/* spl_autoload_register is unavailable - let us hope that no one else uses the __autoload function. */
/** * Autoload function for those who don't have spl_autoload_register. * * @param $className The name of the requested class. */ function __autoload($className) { SimpleSAML_autoload($className); } }
?>
|