码迷,mamicode.com
首页 > 其他好文 > 详细

类自动加载器

时间:2015-07-10 00:15:52      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

 1 /**
 2  * Created by [中弘集团] qq 812035863 .
 3  * User: Taoist
 4  * Date: 2015/7/9
 5  * Time: 20:57
 6  * description: 自动类加载
 7  *  入口文件首先载入加载器
 8  * 
 9  * 加载文件要放在类库内才有作用
10  * 
11  * 如果 root 是根目录
12  * 
13  * /root/library 是库目录
14  * 
15  * autoload文件放在library 下面
16  * 
17  * 例子:
18  * 
19  *  namespace Lib/main
20  * 
21  *  autoload.php 与 main 目录同级 
22  * 
23  */
24 define(‘LIB_PATH‘, str_replace(‘\\‘, ‘/‘, __DIR__) .‘/‘ . ‘Library‘ .‘/‘);      //加载路径
25 define(‘CLASS_SUFFIX‘, ‘.php‘);                                                 //类后缀
26 
27 class autoload {
28 
29      static $in; //已导入标示;
30 
31     static public function execute($name){
32         if(!self::$in[$name]){
33             $class = ‘‘;
34             $dir = ‘‘;
35             $url = str_replace(‘\\‘, ‘/‘, $name);
36             if(($pos = strrpos($url,‘/‘)) != false){
37                 $class = substr($url,$pos+1); // 类名字
38                 $path = substr($url, 0, $pos);
39                 if(($pos = strpos($path,‘/‘)) != false){
40                     $dir = substr($path,$pos+1); //路径
41                     self::$in[$name] = true;
42                     include_once LIB_PATH.$dir.‘/‘.$class.CLASS_SUFFIX;
43                 }else{
44                     self::$in[$name] = true;
45                     include_once LIB_PATH.$class.CLASS_SUFFIX ;
46                 }
47             }else
48                 throw new Exception($name.‘not find‘);
49         }
50     }
51 }
52 spl_autoload_register(array(‘autoload‘,‘execute‘));

 

类自动加载器

标签:

原文地址:http://www.cnblogs.com/Super-Man/p/4634429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!