一:商城框架搭建示例圖


1 <?php2 /**3 用戶直接訪問的頁面4 先加載框架初始化文件:init.php5 */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("http://", "/", 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 bool14 */15 public abstract function connect($h,$u,$p);16 /*17 發送查詢18 parms $sql 發送的sql語句19 return mixed bool/resource20 */21 public abstract function query($sql);22 /*23 查詢多行數據24 parms $sql select型語句25 return array/false26 */27 public abstract function getAll($sql);28 /*29 查詢單行數據30 parms $sql select型語句31 return array/false32 */33 public abstract function getRow($sql);34 /*35 查詢單個數據36 parms $sql select型語句37 return array/false38 */39 public abstract function getOne($sql);40 /*41 自動執行insert/update語句42 parms $sql select型語句43 return array/false44 例如: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 <?php55 /**56 file config.inc.php57 作用:配置文件58 */59 $_CFG = array();60 $_CFG['host'] = 'localhost';61 $_CFG['user'] = 'root';62 $_CFG['pwd'] = '123456';
新聞熱點
疑難解答