- class_exists: documentation ( source)
- is_dir: documentation ( source)
- file_exists: documentation ( source)
<?php
class Loader
{
##針對路徑
public $_path = "include/public/";
##文件夾名稱
public $_dir_name = 'MobileShop';
##對像庫
static private $_Object = array();
##構造方法
function __construct(){
//
}
##核心接口調用方法
function Mode($name=''){
##是否有重定文件夾
if(empty($name)){
die("Error: can not find!".$name);
}
##該定位是否為一個文件夾
$path = FILE_PATH.$this->_path.$this->_dir_name;
if(!is_dir($path)){
die("Error: ".$this->_dir_name." Is not a dir!");
}
##判斷是否有文件
$fileName = $path."/".$name.".class.php";
if(!file_exists($fileName)){
die("Error: $name The file is not exists!");
}
##判斷是否有加載控制方法
if(!class_exists($this->_dir_name."Control")){
include($path."/".$this->_dir_name."Control.php");
}
if(!class_exists($this->_dir_name."Control")){
die("Error:CLASS:".$this->_dir_name."Control is not exists!");
}
##判斷對像是否存在
if(!class_exists($name)){
include($fileName);
}
if(!class_exists($name)){
die("Error:CLASS: ".$name." is not exists!");
}
self::$_Object[$name] = new $name;
return self::$_Object[$name];
}
##魔術方法取值
function __get($name){
##判斷對像庫里是否有存在相同的對像,有則直接返回
if(isset(self::$_Object[$name]) && is_object(self::$_Object[$name])){
return self::$_Object[$name];
}else{
$object = self::Mode($name);
return $object;
}
}
}