一:商城框架搭建示例圖
二:文件存放目錄位置圖片
三:代碼部分
index.php代碼
1 <?php
2 /**
3 用戶直接訪問的頁面
4 先加載框架初始化文件:init.php
5 */
6 require('./include/init.php');
7 $conf = conf::getIns();
8 echo $conf->host."<br/>";
init.php代碼
1 <?php
2 /**
3 file init.php
4 作用:框架初始化
5 */
6 /*過濾參數,用遞歸的方式過濾$_GET,$_POST,$_COOKIE. 暫時放下*/
7 /*初始化當前的絕對路徑*/
8 //換成正斜線是因為 win/linux 都支持正斜線,而linux不支持反斜線。也就是兼容性問題
9 define('ROOT', str_replace("\\", "/", dirname(__FILE__)) . '/');
10 //引入數據庫類和conf類文件
11 require(ROOT . 'db.class.php');
12 require(ROOT . 'conf.class.php');
13 /*設置報告錯誤級別*/
14 define("DEBUG",true);
15 //若果DEBUG為真,說明我們開啟調試模式
16 if( defined('DEBUG') ){
17 error_reporting(E_ALL);
18 }else{
19 //否則說明,我們的文件是在服務器上供用戶訪問,則不報錯,避免安全隱患問題
20 error_reporting(0);
21 }
db.class.php
1 <?php
2 /**
3 file db.class.php
4 作用: 數據庫類
5 因為目前不知道使用什麼數據庫,因此我們先來寫個接口
6 */
7 abstract class db{
8 /*
9 連接服務器
10 parms $h 服務器地址
11 parms $u 用戶名
12 parms $p 密碼
13 return bool
14 */
15 public abstract function connect($h,$u,$p);
16 /*
17 發送查詢
18 parms $sql 發送的sql語句
19 return mixed bool/resource
20 */
21 public abstract function query($sql);
22 /*
23 查詢多行數據
24 parms $sql select型語句
25 return array/false
26 */
27 public abstract function getAll($sql);
28 /*
29 查詢單行數據
30 parms $sql select型語句
31 return array/false
32 */
33 public abstract function getRow($sql);
34 /*
35 查詢單個數據
36 parms $sql select型語句
37 return array/false
38 */
39 public abstract function getOne($sql);
40 /*
41 自動執行insert/update語句
42 parms $sql select型語句
43 return array/false
44 例如:
45 $this->autoExecute('user',array('username'=>'zs', 'email'=>'zs@qq.com', 'insert'));
46 將自動轉成:insert into user(username,email) values ('zs', 'zs@qq.com');
47 */
48 public abstract function autoExecute($table,$data,$act='insert',$where);
49 }
conf.class.php代碼
1 <?php
2 /**
3 file conf.class.php
4 作用:配置文件讀取類
5 */
6 class conf{
7 //靜態屬性用來存放本類實例化的對象
8 protected static $ins = null;
9 //保存讀取過來的配置文件信息
10 protected $data = array();
11 //將conf類的構造函數保護起來,且不讓繼承(防止改寫)
12 final protected function __construct(){
13 //一次性把配置文件信息讀過來,賦給data屬性,這樣以後就不用管配置文件
14 //再找配置文件信息直接找$data就可以了
15 include(ROOT . 'config.inc.php');
16 $this->data = $_CFG;
17 }
18 final protected function __clone(){
19 }
20 //單例模式
21 public static function getIns(){
22 if(self::$ins instanceof self){
23 return self::$ins;
24 }else{
25 self::$ins = new self();
26 return self::$ins;
27 }
28 }
29 //用魔術方法,讀取data屬性內的信息
30 public function __get($key){
31 if(array_key_exists($key, $this->data)){
32 return $this->data[$key];
33 }else{
34 return null;
35 }
36 }
37 //在運行期間,動態增加或改變配置選項
38 public function __set($key, $value){
39 $this->data[$key] = $value;
40 }
41 }
42 /*
43 //測試代碼
44 //測試是否可以創建單例模式對象出來
45 $conf = conf::getIns();
46 //讀取選項
47 echo $conf->host."<br/>";
48 echo $conf->user."<br/>";
49 //動態追加選項
50 $conf->template_dir = "D:\LAMP\Apache2.2\htdocs\boolshop\include";
51 echo $conf->template_dir;
52 */
53 config.inc.php代碼
54 <?php
55 /**
56 file config.inc.php
57 作用:配置文件
58 */
59 $_CFG = array();
60 $_CFG['host'] = 'localhost';
61 $_CFG['user'] = 'root';
62 $_CFG['pwd'] = '123456';