
一:商城框架搭建示例图
二:文件存放目录位置图片
三:代码部分
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';