一:商城框架搭建示例图
[flash=500,400]http://s1.knowsky.com/20160211/wnqnkhxgczk44.jpg[/flash]
二:文件存放目录位置图片
[flash=500,400]http://s1.knowsky.com/20160211/oe1slj5adkk44.jpg[/flash] [flash=500,400]http://s1.knowsky.com/20160211/xi5hbxo24p444.jpg[/flash]
三:代码部分
index.php代码
1<?php2/**3用户直接访问的页面4先加载框架初始化文件:init.php5*/6require('./include/init.php');7$conf= conf::getIns();8echo$conf->host."<br/>";
init.php代码
1<?php2/**3file init.php4作用:框架初始化5*/6/*过滤参数,用递归的方式过滤$_GET,$_POST,$_COOKIE. 暂时放下*/7/*初始化当前的绝对路径*/8//换成正斜线是因为 win/linux都支持正斜线,而linux不支持反斜线。也就是兼容性问题9define('ROOT',str_replace("\\", "/",dirname(__FILE__)) . '/');10//引入数据库类和conf类文件11require(ROOT . 'db.class.php');12require(ROOT . 'conf.class.php');13/*设置报告错误级别*/14define("DEBUG",true);15//若果DEBUG为真,说明我们开启调试模式16if(defined('DEBUG') ){17error_reporting(E_ALL);18}else{19//否则说明,我们的文件是在服务器上供用户访问,则不报错,避免安全隐患问题20error_reporting(0);21}
db.class.php
1<?php2/**3file db.class.php4作用: 数据库类5因为目前不知道使用什么数据库,因此我们先来写个接口6*/7abstractclassdb{8/*9连接服务器10parms $h 服务器地址11parms $u 用户名12parms $p 密码13return bool14*/15publicabstractfunctionconnect($h,$u,$p);16/*17发送查询18parms $sql 发送的sql语句19return mixed bool/resource20*/21publicabstractfunctionquery($sql);22/*23查询多行数据24parms $sql select型语句25return array/false26*/27publicabstractfunctiongetAll($sql);28/*29查询单行数据30parms $sql select型语句31return array/false32*/33publicabstractfunctiongetRow($sql);34/*35查询单个数据36parms $sql select型语句37return array/false38*/39publicabstractfunctiongetOne($sql);40/*41自动执行insert/update语句42parms $sql select型语句43return 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*/48publicabstractfunctionautoExecute($table,$data,$act='insert',$where);49}
conf.class.php代码
1<?php2/**3file conf.class.php4作用:配置文件读取类5*/6classconf{7//静态属性用来存放本类实例化的对象8PRotectedstatic$ins=null;9//保存读取过来的配置文件信息10protected$data=array();11//将conf类的构造函数保护起来,且不让继承(防止改写)12finalprotectedfunction__construct(){13//一次性把配置文件信息读过来,赋给data属性,这样以后就不用管配置文件14//再找配置文件信息直接找$data就可以了15include(ROOT . 'config.inc.php');16$this->data =$_CFG;17}18finalprotectedfunction__clone(){19}20//单例模式21publicstaticfunctiongetIns(){22if(self::$insinstanceof self){23returnself::$ins;24}else{25self::$ins=newself();26returnself::$ins;27}28}29//用魔术方法,读取data属性内的信息30publicfunction__get($key){31if(array_key_exists($key,$this->data)){32return$this->data[$key];33}else{34returnnull;35}36}37//在运行期间,动态增加或改变配置选项38publicfunction__set($key,$value){39$this->data[$key] =$value;40}41}42/*43//测试代码44//测试是否可以创建单例模式对象出来45$conf = conf::getIns();46//读取选项47echo $conf->host."<br/>";48echo $conf->user."<br/>";49//动态追加选项50$conf->template_dir = "D:\LAMP\Apache2.2\htdocs\boolshop\include";51echo $conf->template_dir;52*/53config.inc.php代码54<?php55/**56file config.inc.php57作用:配置文件58*/59$_CFG=array();60$_CFG['host'] = 'localhost';61$_CFG['user'] = 'root';62$_CFG['pwd'] = '123456';