-
Notifications
You must be signed in to change notification settings - Fork 1
/
Autoloader.php
58 lines (50 loc) · 1.6 KB
/
Autoloader.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
namespace VaakyHighlighter;
// If this file is called directly, abort.
if (!defined('ABSPATH')) exit;
/**
* The PSR-4 autoloader project-specific implementation.
*
* After registering this autoload function with SPL, the following line
* would cause the function to attempt to load the \Foo\Bar\Baz\Qux class
* from /path/to/project/src/Baz/Qux.php:
*
* new \Foo\Bar\Baz\Qux;
*
* @link https://www.php-fig.org/psr/psr-4/examples/ The code this autoloader is based upon.
*
* @since 1.0.0
* @package VaakyHighlighter
*
* @param string $className The fully-qualified class name.
* @return void
*/
spl_autoload_register(function ($className)
{
// Project-specific namespace prefix
$prefix = 'VaakyHighlighter\\';
// Base directory for the namespace prefix
$baseDir = __DIR__ . '/';
// Does the class use the namespace prefix?
$prefixLength = strlen($prefix);
if (strncmp($prefix, $className, $prefixLength) !== 0)
{
// No, move to the next registered autoloader
return;
}
// Get the relative class name
$relativeClassName = substr($className, $prefixLength);
// Replace the namespace prefix with the base directory, replace namespace
// separators with directory separators in the relative class name, append
// with .php
$filePath = $baseDir . str_replace('\\', '/', $relativeClassName) . '.php';
// If the file exists, require it
if (file_exists($filePath))
{
require_once $filePath;
}
else
{
exit(esc_html("The file $className.php could not be found!"));
}
});