欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-04-25 13:56:06
...

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

一:商城框架搭建示例图

二:文件存放目录位置图片 三:代码部分 index.php代码
1 php
2 /**
3 用户直接访问的页面
4 先加载框架初始化文件:init.php
5 */
6 require('./include/init.php');
7 $conf = conf::getIns();
8 echo $conf->host."
";

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'=>'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."
";
48 echo $conf->user."
";
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';