autoload.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * The autoloader used for loading sql-parser's components.
  4. *
  5. * This file is based on Composer's autoloader.
  6. *
  7. * (c) Nils Adermann <naderman@naderman.de>
  8. * Jordi Boggiano <j.boggiano@seld.be>
  9. *
  10. * @package SqlParser
  11. * @subpackage Autoload
  12. */
  13. namespace SqlParser\Autoload;
  14. if (!class_exists('SqlParser\\Autoload\\ClassLoader')) {
  15. if (! file_exists('./libraries/sql-parser/ClassLoader.php')) {
  16. die('Invalid invocation');
  17. }
  18. include_once './libraries/sql-parser/ClassLoader.php';
  19. }
  20. use SqlParser\Autoload\ClassLoader;
  21. /**
  22. * Initializes the autoloader.
  23. *
  24. * @package SqlParser
  25. * @subpackage Autoload
  26. */
  27. class AutoloaderInit
  28. {
  29. /**
  30. * The loader instance.
  31. *
  32. * @var ClassLoader
  33. */
  34. public static $loader;
  35. /**
  36. * Constructs and returns the class loader.
  37. *
  38. * @param array $map Array containing path to each namespace.
  39. *
  40. * @return ClassLoader
  41. */
  42. public static function getLoader(array $map)
  43. {
  44. if (null !== self::$loader) {
  45. return self::$loader;
  46. }
  47. self::$loader = $loader = new ClassLoader();
  48. foreach ($map as $namespace => $path) {
  49. $loader->set($namespace, $path);
  50. }
  51. $loader->register(true);
  52. return $loader;
  53. }
  54. }
  55. // Initializing the autoloader.
  56. return AutoloaderInit::getLoader(
  57. array(
  58. 'SqlParser\\' => array(dirname(__FILE__) . '/src'),
  59. )
  60. );