Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/main/inc/lib/autoload.class.php

65 lines
1.4 KiB

<?php
/**
* Autoload Chamilo classes
*
* @license see /license.txt
* @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
*/
class Autoload
{
/**
* Register the Chamilo autoloader on the stack.
*/
static public function register()
{
$f = array(new self, 'load');
spl_autoload_register($f);
}
static public function map()
{
static $result = false;
if ($result)
{
return $result;
}
$dir = dirname(__FILE__);
$sys = api_get_path(SYS_CODE_PATH);
$result = array();
$result['Redirect'] = $dir . '/redirect.class.php';
$result['Request'] = $dir . '/request.class.php';
$result['AnnouncementEmail'] = $sys. 'announcements/announcement_email.class.php';
$result['Javascript'] = $dir . '/javascript.class.php';
$result['ClosureCompiler'] = $dir . '/closure_compiler.class.php';
return $result;
}
/**
* Handles autoloading of classes.
*
* @param string $class_name A class name.
*
* @return boolean returns true if the class has been loaded
*/
public function load($class_name)
{
$map = self::map();
if (isset($map[$class_name]))
{
$path = $map[$class_name];
require_once $path;
return true;
}
else
{
return false;
}
}
}