autoload()   B
last analyzed

Complexity

Conditions 7
Paths 64

Size

Total Lines 24
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 7
eloc 14
nc 64
nop 1
dl 0
loc 24
rs 8.8333
c 0
b 0
f 0
1
<?php
2
3
function autoload($className)
4
{
5
    if (!defined('AUTHOR_NAME')) {
6
        define('AUTHOR_NAME', '.');
7
    }
8
    if (!defined('PROJECT_NAME')) {
9
        define('PROJECT_NAME', '.');
10
    }
11
    if (!defined('PROJECT_DIR')) {
12
        define('PROJECT_DIR', 'src');
13
    }
14
    $className = preg_replace('#^' . AUTHOR_NAME . '\\\\' . PROJECT_NAME . '#', '', $className);
15
    $className = str_replace('\\', DIRECTORY_SEPARATOR, $className);
16
17
    if (is_file(__DIR__ . DIRECTORY_SEPARATOR . $className . '.php')) {
18
        require_once(__DIR__ . DIRECTORY_SEPARATOR . $className . '.php');
19
    }
20
21
    if (is_file(__DIR__ . DIRECTORY_SEPARATOR . 'external' . DIRECTORY_SEPARATOR . $className . '.php')) {
22
        require_once(__DIR__ . DIRECTORY_SEPARATOR . 'external' . DIRECTORY_SEPARATOR . $className . '.php');
23
    }
24
25
    if (is_file(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . PROJECT_DIR . DIRECTORY_SEPARATOR . $className . '.php')) {
26
        require_once(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . PROJECT_DIR . DIRECTORY_SEPARATOR . $className . '.php');
27
    }
28
}
29
30
spl_autoload_register('autoload');
31