一:商城框架搭建示例圖
二:文件存放目錄位置圖片 三:代碼部分 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'=>'[email protected]', 'insert')); 46 將自動轉成:insert into user(username,email) values ('zs', '[email protected]'); 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';