站點根目錄 例如 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');
目錄常量地址
使用目錄常量,可避免項目后期目錄文件名修改導致的到規模修改文件路徑的問題
目錄常量
使用之后,所有的文件地址都由常量來替換
替換后代碼