Autoloader.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * PHPExcel
  4. *
  5. * Copyright (c) 2006 - 2013 PHPExcel
  6. *
  7. * This library is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU Lesser General Public
  9. * License as published by the Free Software Foundation; either
  10. * version 2.1 of the License, or (at your option) any later version.
  11. *
  12. * This library is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with this library; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  20. *
  21. * @category PHPExcel
  22. * @package PHPExcel
  23. * @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)
  24. * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
  25. * @version 1.7.9, 2013-06-02
  26. */
  27. PHPExcel_Autoloader::Register();
  28. // As we always try to run the autoloader before anything else, we can use it to do a few
  29. // simple checks and initialisations
  30. //PHPExcel_Shared_ZipStreamWrapper::register();
  31. // check mbstring.func_overload
  32. if (ini_get('mbstring.func_overload') & 2) {
  33. throw new PHPExcel_Exception('Multibyte function overloading in PHP must be disabled for string functions (2).');
  34. }
  35. PHPExcel_Shared_String::buildCharacterSets();
  36. /**
  37. * PHPExcel_Autoloader
  38. *
  39. * @category PHPExcel
  40. * @package PHPExcel
  41. * @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)
  42. */
  43. class PHPExcel_Autoloader
  44. {
  45. /**
  46. * Register the Autoloader with SPL
  47. *
  48. */
  49. public static function Register() {
  50. if (function_exists('__autoload')) {
  51. // Register any existing autoloader function with SPL, so we don't get any clashes
  52. spl_autoload_register('__autoload');
  53. }
  54. // Register ourselves with SPL
  55. return spl_autoload_register(array('PHPExcel_Autoloader', 'Load'));
  56. } // function Register()
  57. /**
  58. * Autoload a class identified by name
  59. *
  60. * @param string $pClassName Name of the object to load
  61. */
  62. public static function Load($pClassName){
  63. if ((class_exists($pClassName,FALSE)) || (strpos($pClassName, 'PHPExcel') !== 0)) {
  64. // Either already loaded, or not a PHPExcel class request
  65. return FALSE;
  66. }
  67. $pClassFilePath = PHPEXCEL_ROOT .
  68. str_replace('_',DIRECTORY_SEPARATOR,$pClassName) .
  69. '.php';
  70. if ((file_exists($pClassFilePath) === FALSE) || (is_readable($pClassFilePath) === FALSE)) {
  71. // Can't load
  72. return FALSE;
  73. }
  74. require($pClassFilePath);
  75. } // function Load()
  76. }