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
|
//autoload hook -> refers to autoload class singleton
|
||||||
function __autoload_system($class_name) {
|
function __autoload_system($class_name) {
|
||||||
return system\autoload::getInstance()->autoload($class_name);
|
return system\autoload::autoload($class_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Register autoload
|
//Register autoload
|
||||||
spl_autoload_register('__autoload_system');
|
spl_autoload_register('__autoload_system');
|
||||||
|
|
||||||
//Register system classes
|
//Register system classes
|
||||||
$autoload = \SYSTEM\autoload::getInstance();
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/system','SYSTEM');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/system','SYSTEM');
|
|
||||||
|
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/log/result','SYSTEM\LOG');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/log/result','SYSTEM\LOG');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/log','SYSTEM\LOG');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/log','SYSTEM\LOG');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/log/exceptions','SYSTEM\LOG');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/log/exceptions','SYSTEM\LOG');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/log/error_handler','SYSTEM\LOG');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/log/error_handler','SYSTEM\LOG');
|
||||||
|
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/api','SYSTEM\API');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/api','SYSTEM\API');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/page','SYSTEM\PAGE');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page','SYSTEM\PAGE');
|
||||||
|
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/dbd/tbl/','SYSTEM\DBD');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/dbd/tbl/','SYSTEM\DBD');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/db','SYSTEM\DB');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/db','SYSTEM\DB');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/db/dbinfo','SYSTEM\DB');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/db/dbinfo','SYSTEM\DB');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/db/connection','SYSTEM\DB');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/db/connection','SYSTEM\DB');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/db/result','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
|
<?php
|
||||||
\SYSTEM\autoload::getInstance()->registerFolder(dirname(__FILE__).'/exceptions_shortcut','');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/exceptions_shortcut','');
|
||||||
@ -1,2 +1,2 @@
|
|||||||
<?php
|
<?php
|
||||||
\SYSTEM\autoload::getInstance()->registerFolder(dirname(__FILE__).'/result_shortcut','');
|
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/result_shortcut','');
|
||||||
@ -1,21 +1,19 @@
|
|||||||
<?php
|
<?php
|
||||||
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/sai','SYSTEM\SAI');
|
||||||
|
|
||||||
$autoload = SYSTEM\autoload::getInstance();
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page','SYSTEM\SAI');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/sai','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');
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules','SYSTEM\SAI');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/page/default_page','SYSTEM\SAI');
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_sai','SYSTEM\SAI');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/page/default_module','SYSTEM\SAI');
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_login','SYSTEM\SAI');
|
||||||
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_log','SYSTEM\SAI');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/modules','SYSTEM\SAI');
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_security','SYSTEM\SAI');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_sai','SYSTEM\SAI');
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_mod','SYSTEM\SAI');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_login','SYSTEM\SAI');
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_config','SYSTEM\SAI');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_log','SYSTEM\SAI');
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_calls','SYSTEM\SAI');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_security','SYSTEM\SAI');
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_locale','SYSTEM\SAI');
|
||||||
$autoload->registerFolder(dirname(__FILE__).'/modules/saimod_sys_mod','SYSTEM\SAI');
|
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_cache','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');
|
|
||||||
|
|
||||||
require_once dirname(__FILE__).'/modules/register_modules.php';
|
require_once dirname(__FILE__).'/modules/register_modules.php';
|
||||||
@ -4,26 +4,16 @@ namespace SYSTEM;
|
|||||||
|
|
||||||
class autoload {
|
class autoload {
|
||||||
|
|
||||||
private $files = array(); // array(class, namespace, file)
|
private static $files = array(); // array(class, namespace, file)
|
||||||
private $folders = array(); // array(namespace, folder)
|
private static $folders = array(); // array(namespace, folder)
|
||||||
|
|
||||||
//SINGLETON!
|
private static function getClassFromFile($file){
|
||||||
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){
|
|
||||||
$path_info = \pathinfo($file);
|
$path_info = \pathinfo($file);
|
||||||
|
|
||||||
return $path_info['filename'];
|
return $path_info['filename'];
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getClassNamespaceFromClass($class){
|
private static function getClassNamespaceFromClass($class){
|
||||||
$path_info = \pathinfo($class);
|
$path_info = \pathinfo($class);
|
||||||
|
|
||||||
$lastslash = \strrpos($class, 92);
|
$lastslash = \strrpos($class, 92);
|
||||||
@ -37,15 +27,15 @@ class autoload {
|
|||||||
\substr($class, 0, $lastslash));
|
\substr($class, 0, $lastslash));
|
||||||
}
|
}
|
||||||
|
|
||||||
private function autoload_($class, $namespace = ''){
|
private static function autoload_($class, $namespace = ''){
|
||||||
foreach($this->files as $file){
|
foreach(self::$files as $file){
|
||||||
if(strtolower($file[0]) == strtolower($class) &&
|
if(strtolower($file[0]) == strtolower($class) &&
|
||||||
strtolower($file[1]) == strtolower($namespace)){
|
strtolower($file[1]) == strtolower($namespace)){
|
||||||
require_once $file[2];
|
require_once $file[2];
|
||||||
return true;}
|
return true;}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($this->folders as $folder){
|
foreach(self::$folders as $folder){
|
||||||
if(strtolower($folder[0]) == strtolower($namespace) &&
|
if(strtolower($folder[0]) == strtolower($namespace) &&
|
||||||
is_file($folder[1].'/'.$class.'.php')){
|
is_file($folder[1].'/'.$class.'.php')){
|
||||||
require_once $folder[1].'/'.$class.'.php';
|
require_once $folder[1].'/'.$class.'.php';
|
||||||
@ -55,23 +45,23 @@ class autoload {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function registerFile($file, $namespace = ''){
|
public static function registerFile($file, $namespace = ''){
|
||||||
if(!is_file($file)){
|
if(!is_file($file)){
|
||||||
throw new \Exception('File not found on registerFile for Autoload: '.$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)){
|
if(!is_dir($folder)){
|
||||||
throw new \Exception('Folder not found on registerFolder for Autoload: '.$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){
|
public static function autoload($class){
|
||||||
$classns = $this->getClassNamespaceFromClass($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