Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
<?php

namespace Complex;

/**
 *
 * Autoloader for Complex classes
 *
 * @package Complex
 * @copyright  Copyright (c) 2014 Mark Baker (https://github.com/MarkBaker/PHPComplex)
< * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
> * @license https://opensource.org/licenses/MIT MIT
*/ class Autoloader { /** * Register the Autoloader with SPL * */ public static function Register() { if (function_exists('__autoload')) { // Register any existing autoloader function with SPL, so we don't get any clashes spl_autoload_register('__autoload'); } // Register ourselves with SPL return spl_autoload_register(['Complex\\Autoloader', 'Load']); } /** * Autoload a class identified by name * * @param string $pClassName Name of the object to load */ public static function Load($pClassName) { if ((class_exists($pClassName, false)) || (strpos($pClassName, 'Complex\\') !== 0)) { // Either already loaded, or not a Complex class request return false; } $pClassFilePath = __DIR__ . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . str_replace(['Complex\\', '\\'], ['', '/'], $pClassName) . '.php'; if ((file_exists($pClassFilePath) === false) || (is_readable($pClassFilePath) === false)) { // Can't load return false; } require($pClassFilePath); } }