autoload is not a singleton anymore but a static class allowing an easier call
This commit is contained in:
parent
45c3939c57
commit
83340f4993
@ -5,34 +5,33 @@ require_once dirname(__FILE__).'/system/autoload.php';
|
||||
|
||||
//autoload hook -> refers to autoload class singleton
|
||||
function __autoload_system($class_name) {
|
||||
return system\autoload::getInstance()->autoload($class_name);
|
||||
return system\autoload::autoload($class_name);
|
||||
}
|
||||
|
||||
//Register autoload
|
||||
spl_autoload_register('__autoload_system');
|
||||
|
||||
//Register system classes
|
||||
$autoload = \SYSTEM\autoload::getInstance();
|
||||
$autoload->registerFolder(dirname(__FILE__).'/system','SYSTEM');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/system','SYSTEM');
|
||||
|
||||
$autoload->registerFolder(dirname(__FILE__).'/log/result','SYSTEM\LOG');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/log','SYSTEM\LOG');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/log/exceptions','SYSTEM\LOG');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/log/error_handler','SYSTEM\LOG');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/log/result','SYSTEM\LOG');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/log','SYSTEM\LOG');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/log/exceptions','SYSTEM\LOG');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/log/error_handler','SYSTEM\LOG');
|
||||
|
||||
$autoload->registerFolder(dirname(__FILE__).'/api','SYSTEM\API');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/page','SYSTEM\PAGE');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/api','SYSTEM\API');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page','SYSTEM\PAGE');
|
||||
|
||||
$autoload->registerFolder(dirname(__FILE__).'/dbd/tbl/','SYSTEM\DBD');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/db','SYSTEM\DB');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/db/dbinfo','SYSTEM\DB');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/db/connection','SYSTEM\DB');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/db/result','SYSTEM\DB');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/dbd/tbl/','SYSTEM\DBD');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/db','SYSTEM\DB');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/db/dbinfo','SYSTEM\DB');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/db/connection','SYSTEM\DB');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/db/result','SYSTEM\DB');
|
||||
|
||||
$autoload->registerFolder(dirname(__FILE__).'/security','SYSTEM\SECURITY');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/security','SYSTEM\SECURITY');
|
||||
|
||||
$autoload->registerFolder(dirname(__FILE__).'/config','SYSTEM\CONFIG');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/config','SYSTEM\CONFIG');
|
||||
|
||||
$autoload->registerFolder(dirname(__FILE__).'/cache','SYSTEM\CACHE');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/cache','SYSTEM\CACHE');
|
||||
|
||||
$autoload->registerFolder(dirname(__FILE__).'/sai','SYSTEM\SAI');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/sai','SYSTEM\SAI');
|
||||
@ -1,2 +1,2 @@
|
||||
<?php
|
||||
\SYSTEM\autoload::getInstance()->registerFolder(dirname(__FILE__).'/exceptions_shortcut','');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/exceptions_shortcut','');
|
||||
@ -1,2 +1,2 @@
|
||||
<?php
|
||||
\SYSTEM\autoload::getInstance()->registerFolder(dirname(__FILE__).'/result_shortcut','');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/result_shortcut','');
|
||||
@ -1,21 +1,19 @@
|
||||
<?php
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/sai','SYSTEM\SAI');
|
||||
|
||||
$autoload = SYSTEM\autoload::getInstance();
|
||||
$autoload->registerFolder(dirname(__FILE__).'/sai','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page/default_page','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page/default_module','SYSTEM\SAI');
|
||||
|
||||
$autoload->registerFolder(dirname(__FILE__).'/page','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/page/default_page','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/page/default_module','SYSTEM\SAI');
|
||||
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_sai','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_login','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_log','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_security','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_mod','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_config','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_calls','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_locale','SYSTEM\SAI');
|
||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_cache','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_sai','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_login','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_log','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_security','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_mod','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_config','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_calls','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_locale','SYSTEM\SAI');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_cache','SYSTEM\SAI');
|
||||
|
||||
require_once dirname(__FILE__).'/modules/register_modules.php';
|
||||
@ -4,26 +4,16 @@ namespace SYSTEM;
|
||||
|
||||
class autoload {
|
||||
|
||||
private $files = array(); // array(class, namespace, file)
|
||||
private $folders = array(); // array(namespace, folder)
|
||||
private static $files = array(); // array(class, namespace, file)
|
||||
private static $folders = array(); // array(namespace, folder)
|
||||
|
||||
//SINGLETON!
|
||||
static private $instance = null;
|
||||
static public function getInstance(){
|
||||
if (null === self::$instance) {
|
||||
self::$instance = new self;}
|
||||
return self::$instance;
|
||||
}
|
||||
private function __construct(){}
|
||||
private function __clone(){}
|
||||
|
||||
private function getClassFromFile($file){
|
||||
private static function getClassFromFile($file){
|
||||
$path_info = \pathinfo($file);
|
||||
|
||||
return $path_info['filename'];
|
||||
}
|
||||
|
||||
private function getClassNamespaceFromClass($class){
|
||||
private static function getClassNamespaceFromClass($class){
|
||||
$path_info = \pathinfo($class);
|
||||
|
||||
$lastslash = \strrpos($class, 92);
|
||||
@ -37,15 +27,15 @@ class autoload {
|
||||
\substr($class, 0, $lastslash));
|
||||
}
|
||||
|
||||
private function autoload_($class, $namespace = ''){
|
||||
foreach($this->files as $file){
|
||||
private static function autoload_($class, $namespace = ''){
|
||||
foreach(self::$files as $file){
|
||||
if(strtolower($file[0]) == strtolower($class) &&
|
||||
strtolower($file[1]) == strtolower($namespace)){
|
||||
require_once $file[2];
|
||||
return true;}
|
||||
}
|
||||
|
||||
foreach($this->folders as $folder){
|
||||
foreach(self::$folders as $folder){
|
||||
if(strtolower($folder[0]) == strtolower($namespace) &&
|
||||
is_file($folder[1].'/'.$class.'.php')){
|
||||
require_once $folder[1].'/'.$class.'.php';
|
||||
@ -55,23 +45,23 @@ class autoload {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function registerFile($file, $namespace = ''){
|
||||
public static function registerFile($file, $namespace = ''){
|
||||
if(!is_file($file)){
|
||||
throw new \Exception('File not found on registerFile for Autoload: '.$file);}
|
||||
|
||||
$this->files[] = array($this->getClassFromFile($file), $namespace, $file);
|
||||
self::$files[] = array(self::getClassFromFile($file), $namespace, $file);
|
||||
}
|
||||
|
||||
public function registerFolder($folder, $namespace = ''){
|
||||
public static function registerFolder($folder, $namespace = ''){
|
||||
if(!is_dir($folder)){
|
||||
throw new \Exception('Folder not found on registerFolder for Autoload: '.$folder);}
|
||||
|
||||
$this->folders[] = array($namespace, $folder);
|
||||
self::$folders[] = array($namespace, $folder);
|
||||
}
|
||||
|
||||
public function autoload($class){
|
||||
$classns = $this->getClassNamespaceFromClass($class);
|
||||
public static function autoload($class){
|
||||
$classns = self::getClassNamespaceFromClass($class);
|
||||
|
||||
return $this->autoload_($classns[0],$classns[1]);
|
||||
return self::autoload_($classns[0],$classns[1]);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user