您的位置:首页 > 编程语言 > PHP开发

PHP类的自动加载

2015-09-24 15:37 453 查看
<?php
namespace Manager;

/**
* Class autoLoad
* @param $classMap
* @package Manager
*/
class autoLoad{

/**
* save the file path of class
* @var array
*/
public static $classMap = array();

/**
* include class
* @param  $className
* if the param is a string , it must be a namespace path
* @author pig 2015-09-22
*/
public static function loadClass($className){

if(isset(self::$classMap[$className])){
include self::$classMap[$className];
}else{
$className and $filePath = str_replace('\\','/',$className).'.php';
if(!file_exists($filePath)){
exit("file:$filePath is not exist");
}
self::$classMap[$className] = $filePath;
include $filePath;
}
$result = class_exists($className,false) || interface_exists($className,false);
if(!$result){
exit("class:$className is not exist");
}

}

/**
* auto load register function
* @author pig 2015-09-22
*/
public static function run(){
spl_autoload_register(__NAMESPACE__ .'\autoLoad::loadClass');
}
}

如何使用?

<?php
use Manager\BlogManager;

include 'Manager/autoLoad.php';
autoLoad::run();
BlogManager::factory()->encode(); //这时就可以自动把BlogManager类自动包含进来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP类的自动加载