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

AutoLoader   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 29
ccs 0
cts 16
cp 0
rs 10
c 0
b 0
f 0
wmc 7

4 Methods

Rating   Name   Duplication   Size   Complexity  
A unRegister() 0 3 1
A autoload() 0 8 2
A loadClass() 0 4 3
A register() 0 4 1
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