Completed
Pull Request — master (#2)
by Mathieu
05:06 queued 01:16
created

AutoLoader::autoload()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 1
dl 0
loc 8
ccs 0
cts 5
cp 0
crap 6
rs 10
c 0
b 0
f 0
1
<?php declare(strict_types=1);
2
namespace Suricate;
3
4
class AutoLoader
5
{
6
    public static function autoload($class)
7
    {
8
        $class      = str_replace('\\', DIRECTORY_SEPARATOR, $class);
9
10
        $filename   = dirname(__DIR__) . DIRECTORY_SEPARATOR . $class . '.php';
11
12
        if (is_file($filename)) {
13
            include $filename;
14
        }
15
    }
16
17
    public static function loadClass($class)
18
    {
19
        if (!class_exists($class, false) && !interface_exists($class, false)) {
20
            self::autoload($class);
21
        }
22
    }
23
24
    public static function register()
25
    {
26
        ini_set('unserialize_callback_func', 'spl_autoload_call');
27
        spl_autoload_register(__NAMESPACE__ .'\Autoloader::loadClass');
28
    }
29
30
    public static function unRegister()
31
    {
32
        spl_autoload_unregister(__NAMESPACE__ .'\Autoloader::loadClass');
33
    }
34
}
35