60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
// Configuration par défaut, si les constantes ne sont pas définies dans config.local.php
// (fallback)
if (!defined('Garradin\ROOT'))
{
define('Garradin\ROOT', dirname(__DIR__));
}
/**
* Auto-chargement des dépendances
*/
class Loader
{
/**
* Liste des classes déjà chargées
* @var array
*/
static protected $loaded = [];
/**
* Inclure un fichier de classe depuis le nom de la classe
* @param string $classname
* @return void
*/
static public function load($classname)
{
$classname = ltrim($classname, '\\');
if (array_key_exists($classname, self::$loaded))
{
return true;
}
// Plugins
if (substr($classname, 0, 16) == 'Garradin\\Plugin\\')
{
$classname = substr($classname, 16);
$plugin_name = substr($classname, 0, strpos($classname, '\\'));
$filename = str_replace('\\', '/', substr($classname, strpos($classname, '\\')+1));
$path = Plugin::getPath(strtolower($plugin_name)) . '/lib/' . $filename . '.php';
}
else
{
// PSR-0 autoload
$filename = str_replace('\\', '/', $classname);
$path = ROOT . '/include/lib/' . $filename . '.php';
}
if (!file_exists($path))
{
throw new \Exception('File '.$path.' doesn\'t exists');
}
self::$loaded[$classname] = true;
require $path;
}
}
\spl_autoload_register(['Garradin\Loader', 'load'], true);
if (!defined('Garradin\DATA_ROOT'))
{
define('Garradin\DATA_ROOT', ROOT);
}
if (!defined('Garradin\WWW_URI'))
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
<
|
|
<
|
<
|
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
// Configuration par défaut, si les constantes ne sont pas définies dans config.local.php
// (fallback)
if (!defined('Garradin\ROOT'))
{
define('Garradin\ROOT', dirname(__DIR__));
}
\spl_autoload_register(function (string $classname) {
$classname = ltrim($classname, '\\');
// Plugins
if (substr($classname, 0, 16) == 'Garradin\\Plugin\\')
{
$classname = substr($classname, 16);
$plugin_name = substr($classname, 0, strpos($classname, '\\'));
$filename = str_replace('\\', '/', substr($classname, strpos($classname, '\\')+1));
$path = Plugin::getPath(strtolower($plugin_name)) . '/lib/' . $filename . '.php';
}
else
{
// PSR-0 autoload
$filename = str_replace('\\', '/', $classname);
$path = ROOT . '/include/lib/' . $filename . '.php';
}
if (file_exists($path)) {
require_once $path;
}
}, true);
if (!defined('Garradin\DATA_ROOT'))
{
define('Garradin\DATA_ROOT', ROOT);
}
if (!defined('Garradin\WWW_URI'))
|