·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> 第一讲商城项目搭建(第138讲)

第一讲商城项目搭建(第138讲)

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23

一:商城框架搭建示例图

    二:文件存放目录位置图片                    三:代码部分 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';