autoload.class.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * Autoload Chamilo classes
  4. *
  5. * @license see /license.txt
  6. * @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
  7. */
  8. class Autoload
  9. {
  10. /**
  11. * Register the Chamilo autoloader on the stack.
  12. */
  13. static public function register()
  14. {
  15. $f = array(new self, 'load');
  16. spl_autoload_register($f);
  17. }
  18. static public function map()
  19. {
  20. static $result = false;
  21. if ($result)
  22. {
  23. return $result;
  24. }
  25. $dir = dirname(__FILE__);
  26. $sys = api_get_path(SYS_CODE_PATH);
  27. $result = array();
  28. $result['Redirect'] = $dir . '/redirect.class.php';
  29. $result['Request'] = $dir . '/request.class.php';
  30. $result['AnnouncementEmail'] = $sys. 'announcements/announcement_email.class.php';
  31. $result['Javascript'] = $dir . '/javascript.class.php';
  32. $result['ClosureCompiler'] = $dir . '/closure_compiler.class.php';
  33. return $result;
  34. }
  35. /**
  36. * Handles autoloading of classes.
  37. *
  38. * @param string $class_name A class name.
  39. *
  40. * @return boolean returns true if the class has been loaded
  41. */
  42. public function load($class_name)
  43. {
  44. $map = self::map();
  45. if (isset($map[$class_name]))
  46. {
  47. $path = $map[$class_name];
  48. require_once $path;
  49. return true;
  50. }
  51. else
  52. {
  53. return false;
  54. }
  55. }
  56. }