-
Olav Morken authored
git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@808 44740490-163a-0410-bde0-09ae8108e29a
Olav Morken authoredgit-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@808 44740490-163a-0410-bde0-09ae8108e29a
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
<?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);
}
}
?>