- A+
婴儿期版本如下:
根目录/src/autoload.php
<?php
/**
* Created by 大师兄
* 派系: 神秘剑派
* 技能: zxc秒杀
* Date: 2017/8/12
* Time: 9:45
* QQ: 997823131
*/
spl_autoload_register(function($class){
$class_arr = explode("\\",$class);
$class_num = count($class_arr);
$class_path = ROOT_PATH.DS.VENDER;
if($class_num > 1){
//算出 需要加载的类的全路径
for($i=0;$i<$class_num;$i++){
$class_path .= DS.$class_arr[$i];
}
$class_path .= ".php";
}else{
$class_path .= $class.".php";
}
require_once($class_path);
});
?>
根目录/common.php
<?php
define(ROOT_PATH,$_SERVER['DOCUMENT_ROOT']);
define(DS,DIRECTORY_SEPARATOR);
define(VENDER,"src"); //后期可以定义为不同项目的不同自动调用方法
?>
需要注意的细节问题
注意1 在 任何地方调用时 如果 不加 use 则调用方法 为 $obj = new fileName\fileName\objName();
使用 use fileName\fileName\objName 则调用方法为 $obj = new objNmae();
注意2 在 任何需要被调用的 类里边 根据类所在的地方是否 跟 autoload.php 在同一级别文件夹里边 在 判断是否 加 namespace 以及加多少层 namespace (重要)
注意3 在 被需要调用的类里边需要调用另一个类时也可以 按照 注意 1 里边的方法
最后你会发现 这个跟composer所实现的功能大概是一样的。
- 我的微信
- 这是我的微信扫一扫
-
- 我的微信公众号
- 我的微信公众号扫一扫
-