Nessuna descrizione

Autoloader.php 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * This file is part of PHPWord - A pure PHP library for reading and writing
  4. * word processing documents.
  5. *
  6. * PHPWord is free software distributed under the terms of the GNU Lesser
  7. * General Public License version 3 as published by the Free Software Foundation.
  8. *
  9. * For the full copyright and license information, please read the LICENSE
  10. * file that was distributed with this source code. For the full list of
  11. * contributors, visit https://github.com/PHPOffice/PHPWord/contributors.
  12. *
  13. * @link https://github.com/PHPOffice/PHPWord
  14. * @copyright 2010-2014 PHPWord contributors
  15. * @license http://www.gnu.org/licenses/lgpl.txt LGPL version 3
  16. */
  17. namespace PhpOffice\PhpWord;
  18. /**
  19. * Autoloader
  20. */
  21. class Autoloader
  22. {
  23. /** @const string */
  24. const NAMESPACE_PREFIX = 'PhpOffice\\PhpWord\\';
  25. /**
  26. * Register
  27. *
  28. * @param bool $throw
  29. * @param bool $prepend
  30. * @return void
  31. */
  32. public static function register($throw = true, $prepend = false)
  33. {
  34. spl_autoload_register(array(new self, 'autoload'), $throw, $prepend);
  35. }
  36. /**
  37. * Autoload
  38. *
  39. * @param string $class
  40. * @return void
  41. */
  42. public static function autoload($class)
  43. {
  44. $prefixLength = strlen(self::NAMESPACE_PREFIX);
  45. if (0 === strncmp(self::NAMESPACE_PREFIX, $class, $prefixLength)) {
  46. $file = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, $prefixLength));
  47. $file = realpath(__DIR__ . (empty($file) ? '' : DIRECTORY_SEPARATOR) . $file . '.php');
  48. if (file_exists($file)) {
  49. /** @noinspection PhpIncludeInspection Dynamic includes */
  50. require_once $file;
  51. }
  52. }
  53. }
  54. }