| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- /**
- * This file is part of GameQ.
- *
- * GameQ is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * GameQ is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- *
- */
- /**
- * A simple PSR-4 spec auto loader to allow GameQ to function the same as if it were loaded via Composer
- *
- * To use this just include this file in your script and the GameQ namespace will be made available
- *
- * i.e. require_once('/path/to/src/GameQ/Autoloader.php');
- *
- * See: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md
- *
- * @codeCoverageIgnore
- */
- spl_autoload_register(function ($class) {
- // project-specific namespace prefix
- $prefix = 'GameQ\\';
- // base directory for the namespace prefix
- $base_dir = __DIR__ . DIRECTORY_SEPARATOR;
- // does the class use the namespace prefix?
- $len = strlen($prefix);
- if (strncmp($prefix, $class, $len) !== 0) {
- // no, move to the next registered autoloader
- return;
- }
- // get the relative class name
- $relative_class = substr($class, $len);
- // replace the namespace prefix with the base directory, replace namespace
- // separators with directory separators in the relative class name, append
- // with .php
- $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
- // if the file exists, require it
- if (file_exists($file)) {
- require $file;
- }
- });
|