站点根目录 例如 MyShoppingMall
入口文件一般出现在根目录(index.php)
框架代码目录与应用程序代码目录
框架代码:使用的第三方框架或者工具类
应用代码: 当前项目的业务逻辑实现代码
应用代码
平台划分(module,group)
前端:商城展示界面
后台:后台管理界面
整体项目目录
加载文件
-
配置虚拟目录
在httpd-vhost文件中配置虚拟目录
配置虚拟目录 -
在host文件中设置访问入口
127.0.0.1 shop.kang.com
- 修改需要载入的文件路径
由于文件放在不同的目录,所以每一类文件的相对路径都不大相同,所以要有一个办法来加载这些放在不同文件夹下的文件
注意:使用getCWD()可以用来获得当前工作目录。current working directory
自动记载
控制器类,模型类,框架核心类
我们通常将所有的类分为两大类型
- 可以确定的类(自动加载方法确定时,类文件就能确定的):对于这些类,采用最简单的方式进行加载
- 可以被扩展的类(还没创建的类,但有一定规律):需要通过类名的规律,完成位置判断,进而完成自动加载
/**
* 自动加载类文件函数
*/
function userAutoLoad($class_name){
//先处理确定的(框架中的核心类)
//类名与类文件映射数组
$framework_class_list = array(
//'类名'=>'类文件地址'
'Controller'=>'./framework/Controller.class.php',
'Model'=>'./framework/Model.class.php',
'Factory'=>'./framework/Factory.class.php',
'MySQLDB'=>'./framework/MySQLDB.class.php'
);
//判断是否为核心类
if(isset($framework_class_list[$class_name]){
//核心类
require $framework_class_list[$class_name];
}else if(substr($class_name,-10)=='Controller'){
//判断是否为可增加(控制器类,模型类)
//截取后10个字符匹配Controller
require './application/'.PLATFORM.'/controller/'.$class_name.'.class.php';
}else if(substr($class_name,-5)=='Model'){
require './application'.PLATFORM.'/model/'.$class_name.'.class.php';
}
}
spl_autoload_register('userAutoLoad');
目录常量地址
使用目录常量,可避免项目后期目录文件名修改导致的到规模修改文件路径的问题
目录常量使用之后,所有的文件地址都由常量来替换
替换后代码
网友评论