-
Notifications
You must be signed in to change notification settings - Fork 0
/
class_loader.php
40 lines (33 loc) · 1.36 KB
/
class_loader.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
<?php
/**
* Configuration for auto-loading classes
* CLASS_FOLDERS points is an array of class-containing folders that are relative to the root directory!!
* CLASS_EXTENSION is the file extension of the PHP file where the class resides
*/
$configuration["CLASS_FOLDERS"] = array("classes");
$configuration["CLASS_EXTENSION"] = "php";
/**
* ADAPT_FUNCTION points to the function name, that is mapped to every class name
* for example class Database has file database.php
* If other behaviour is desired, write a function and change the ADAPT_FUNCTION parameter value
*/
$configuration["ADAPT_FUNCTION"] = "seedGame_adaptClassName";
function seedGame_adaptClassName($className) {
$className = strtolower($className);
$className = $className . ".class";
return $className;
}
function seedGame_autoload($className) {
global $configuration;
// adapt the class name to the file name
$className = call_user_func($configuration["ADAPT_FUNCTION"], $className);
foreach ($configuration["CLASS_FOLDERS"] as $classFolder) {
$path = dirname(__FILE__) . DIRECTORY_SEPARATOR . $classFolder . DIRECTORY_SEPARATOR . $className . "." . $configuration["CLASS_EXTENSION"];
if (file_exists($path)) {
require_once ($path);
break;
}
}
}
/* Register a class-loading function because of possible collisions with Smarty's __autoload*/
spl_autoload_register("seedGame_autoload");