首页  >  文章  >  后端开发  >  第一讲超市项目搭建(第138讲)

第一讲超市项目搭建(第138讲)

WBOY
WBOY原创
2016-06-13 12:28:151155浏览

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

一:商城框架搭建示例图

 

 

二:文件存放目录位置图片

              

 

 

三:代码部分

index.php代码

<span style="color: #008080;">1</span> <span style="color: #000000;">php</span><span style="color: #008080;">2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">3</span> <span style="color: #008000;">用户直接访问的页面</span><span style="color: #008080;">4</span> <span style="color: #008000;">先加载框架初始化文件:init.php</span><span style="color: #008080;">5</span> <span style="color: #008000;">*/</span><span style="color: #008080;">6</span> <span style="color: #0000ff;">require</span>('./include/init.php'<span style="color: #000000;">);</span><span style="color: #008080;">7</span> <span style="color: #800080;">$conf</span> = conf::<span style="color: #000000;">getIns();</span><span style="color: #008080;">8</span> <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$conf</span>->host."<br>";

init.php代码

<span style="color: #008080;"> 1</span> <span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 3</span> <span style="color: #008000;">file init.php</span><span style="color: #008080;"> 4</span> <span style="color: #008000;">作用:框架初始化</span><span style="color: #008080;"> 5</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 6</span> <span style="color: #008000;">/*</span><span style="color: #008000;">过滤参数,用递归的方式过滤$_GET,$_POST,$_COOKIE. 暂时放下</span><span style="color: #008000;">*/</span><span style="color: #008080;"> 7</span> <span style="color: #008000;">/*</span><span style="color: #008000;">初始化当前的绝对路径</span><span style="color: #008000;">*/</span><span style="color: #008080;"> 8</span> <span style="color: #008000;">//</span><span style="color: #008000;">换成正斜线是因为  win/linux 都支持正斜线,而linux不支持反斜线。也就是兼容性问题</span><span style="color: #008080;"> 9</span> <span style="color: #008080;">define</span>('ROOT', <span style="color: #008080;">str_replace</span>("\\", "/", <span style="color: #008080;">dirname</span>(<span style="color: #ff00ff;">__FILE__</span>)) . '/'<span style="color: #000000;">);</span><span style="color: #008080;">10</span> <span style="color: #008000;">//</span><span style="color: #008000;">引入数据库类和conf类文件</span><span style="color: #008080;">11</span> <span style="color: #0000ff;">require</span>(ROOT . 'db.class.php'<span style="color: #000000;">);</span><span style="color: #008080;">12</span> <span style="color: #0000ff;">require</span>(ROOT . 'conf.class.php'<span style="color: #000000;">);</span><span style="color: #008080;">13</span> <span style="color: #008000;">/*</span><span style="color: #008000;">设置报告错误级别</span><span style="color: #008000;">*/</span><span style="color: #008080;">14</span> <span style="color: #008080;">define</span>("DEBUG",<span style="color: #0000ff;">true</span><span style="color: #000000;">);</span><span style="color: #008080;">15</span> <span style="color: #008000;">//</span><span style="color: #008000;">若果DEBUG为真,说明我们开启调试模式</span><span style="color: #008080;">16</span> <span style="color: #0000ff;">if</span>( <span style="color: #008080;">defined</span>('DEBUG'<span style="color: #000000;">) ){</span><span style="color: #008080;">17</span>     <span style="color: #008080;">error_reporting</span>(<span style="color: #ff00ff;">E_ALL</span><span style="color: #000000;">);</span><span style="color: #008080;">18</span> }<span style="color: #0000ff;">else</span><span style="color: #000000;">{</span><span style="color: #008080;">19</span> <span style="color: #008000;">//</span><span style="color: #008000;">否则说明,我们的文件是在服务器上供用户访问,则不报错,避免安全隐患问题</span><span style="color: #008080;">20</span>     <span style="color: #008080;">error_reporting</span>(0<span style="color: #000000;">);</span><span style="color: #008080;">21</span> }

db.class.php

<span style="color: #008080;"> 1</span> <span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 3</span> <span style="color: #008000;">file db.class.php</span><span style="color: #008080;"> 4</span> <span style="color: #008000;">作用: 数据库类</span><span style="color: #008080;"> 5</span> <span style="color: #008000;">因为目前不知道使用什么数据库,因此我们先来写个接口</span><span style="color: #008080;"> 6</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> db{</span><span style="color: #008080;"> 8</span>     <span style="color: #008000;">/*</span><span style="color: #008080;"> 9</span> <span style="color: #008000;">    连接服务器</span><span style="color: #008080;">10</span> <span style="color: #008000;">    parms $h 服务器地址</span><span style="color: #008080;">11</span> <span style="color: #008000;">    parms $u 用户名</span><span style="color: #008080;">12</span> <span style="color: #008000;">    parms $p 密码</span><span style="color: #008080;">13</span> <span style="color: #008000;">    return bool</span><span style="color: #008080;">14</span>     <span style="color: #008000;">*/</span><span style="color: #008080;">15</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span> connect(<span style="color: #800080;">$h</span>,<span style="color: #800080;">$u</span>,<span style="color: #800080;">$p</span><span style="color: #000000;">);</span><span style="color: #008080;">16</span>     <span style="color: #008000;">/*</span><span style="color: #008080;">17</span> <span style="color: #008000;">    发送查询</span><span style="color: #008080;">18</span> <span style="color: #008000;">    parms $sql 发送的sql语句</span><span style="color: #008080;">19</span> <span style="color: #008000;">    return mixed bool/resource</span><span style="color: #008080;">20</span>     <span style="color: #008000;">*/</span><span style="color: #008080;">21</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span> query(<span style="color: #800080;">$sql</span><span style="color: #000000;">);</span><span style="color: #008080;">22</span>     <span style="color: #008000;">/*</span><span style="color: #008080;">23</span> <span style="color: #008000;">    查询多行数据</span><span style="color: #008080;">24</span> <span style="color: #008000;">    parms $sql select型语句</span><span style="color: #008080;">25</span> <span style="color: #008000;">    return array/false</span><span style="color: #008080;">26</span>     <span style="color: #008000;">*/</span><span style="color: #008080;">27</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span> getAll(<span style="color: #800080;">$sql</span><span style="color: #000000;">);</span><span style="color: #008080;">28</span>     <span style="color: #008000;">/*</span><span style="color: #008080;">29</span> <span style="color: #008000;">    查询单行数据</span><span style="color: #008080;">30</span> <span style="color: #008000;">    parms $sql select型语句</span><span style="color: #008080;">31</span> <span style="color: #008000;">    return array/false</span><span style="color: #008080;">32</span>     <span style="color: #008000;">*/</span><span style="color: #008080;">33</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span> getRow(<span style="color: #800080;">$sql</span><span style="color: #000000;">);</span><span style="color: #008080;">34</span>     <span style="color: #008000;">/*</span><span style="color: #008080;">35</span> <span style="color: #008000;">    查询单个数据</span><span style="color: #008080;">36</span> <span style="color: #008000;">    parms $sql select型语句</span><span style="color: #008080;">37</span> <span style="color: #008000;">    return array/false</span><span style="color: #008080;">38</span>     <span style="color: #008000;">*/</span><span style="color: #008080;">39</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span> getOne(<span style="color: #800080;">$sql</span><span style="color: #000000;">);</span><span style="color: #008080;">40</span>     <span style="color: #008000;">/*</span><span style="color: #008080;">41</span> <span style="color: #008000;">    自动执行insert/update语句</span><span style="color: #008080;">42</span> <span style="color: #008000;">    parms $sql select型语句</span><span style="color: #008080;">43</span> <span style="color: #008000;">    return array/false</span><span style="color: #008080;">44</span> <span style="color: #008000;">    例如:</span><span style="color: #008080;">45</span> <span style="color: #008000;">    $this->autoExecute('user',array('username'=>'zs', 'email'=>[email protected]', 'insert'));</span><span style="color: #008080;">46</span> <span style="color: #008000;">    将自动转成:insert into user(username,email) values ('zs', [email protected]');</span><span style="color: #008080;">47</span>     <span style="color: #008000;">*/</span><span style="color: #008080;">48</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span> autoExecute(<span style="color: #800080;">$table</span>,<span style="color: #800080;">$data</span>,<span style="color: #800080;">$act</span>='insert',<span style="color: #800080;">$where</span><span style="color: #000000;">);</span><span style="color: #008080;">49</span> }

conf.class.php代码

<span style="color: #008080;"> 1</span> <span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 3</span> <span style="color: #008000;">file conf.class.php</span><span style="color: #008080;"> 4</span> <span style="color: #008000;">作用:配置文件读取类</span><span style="color: #008080;"> 5</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> conf{</span><span style="color: #008080;"> 7</span>     <span style="color: #008000;">//</span><span style="color: #008000;">静态属性用来存放本类实例化的对象</span><span style="color: #008080;"> 8</span>     <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">static</span> <span style="color: #800080;">$ins</span> = <span style="color: #0000ff;">null</span><span style="color: #000000;">;</span><span style="color: #008080;"> 9</span>     <span style="color: #008000;">//</span><span style="color: #008000;">保存读取过来的配置文件信息</span><span style="color: #008080;">10</span>     <span style="color: #0000ff;">protected</span> <span style="color: #800080;">$data</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">();</span><span style="color: #008080;">11</span>     <span style="color: #008000;">//</span><span style="color: #008000;">将conf类的构造函数保护起来,且不让继承(防止改写)</span><span style="color: #008080;">12</span>     <span style="color: #0000ff;">final</span> <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct(){</span><span style="color: #008080;">13</span>         <span style="color: #008000;">//</span><span style="color: #008000;">一次性把配置文件信息读过来,赋给data属性,这样以后就不用管配置文件</span><span style="color: #008080;">14</span> <span style="color: #008000;">        //再找配置文件信息直接找$data就可以了</span><span style="color: #008080;">15</span>         <span style="color: #0000ff;">include</span>(ROOT . 'config.inc.php'<span style="color: #000000;">);</span><span style="color: #008080;">16</span>         <span style="color: #800080;">$this</span>->data = <span style="color: #800080;">$_CFG</span><span style="color: #000000;">;</span><span style="color: #008080;">17</span> <span style="color: #000000;">    }</span><span style="color: #008080;">18</span>     <span style="color: #0000ff;">final</span> <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __clone(){</span><span style="color: #008080;">19</span> <span style="color: #000000;">    }</span><span style="color: #008080;">20</span>     <span style="color: #008000;">//</span><span style="color: #008000;">单例模式</span><span style="color: #008080;">21</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> getIns(){</span><span style="color: #008080;">22</span>         <span style="color: #0000ff;">if</span>(self::<span style="color: #800080;">$ins</span><span style="color: #000000;"> instanceof self){</span><span style="color: #008080;">23</span>             <span style="color: #0000ff;">return</span> self::<span style="color: #800080;">$ins</span><span style="color: #000000;">;</span><span style="color: #008080;">24</span>         }<span style="color: #0000ff;">else</span><span style="color: #000000;">{</span><span style="color: #008080;">25</span>             self::<span style="color: #800080;">$ins</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> self();</span><span style="color: #008080;">26</span>             <span style="color: #0000ff;">return</span> self::<span style="color: #800080;">$ins</span><span style="color: #000000;">;</span><span style="color: #008080;">27</span> <span style="color: #000000;">        }</span><span style="color: #008080;">28</span> <span style="color: #000000;">    }</span><span style="color: #008080;">29</span>     <span style="color: #008000;">//</span><span style="color: #008000;">用魔术方法,读取data属性内的信息</span><span style="color: #008080;">30</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> __get(<span style="color: #800080;">$key</span><span style="color: #000000;">){</span><span style="color: #008080;">31</span>         <span style="color: #0000ff;">if</span>(<span style="color: #008080;">array_key_exists</span>(<span style="color: #800080;">$key</span>, <span style="color: #800080;">$this</span>-><span style="color: #000000;">data)){</span><span style="color: #008080;">32</span>             <span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->data[<span style="color: #800080;">$key</span><span style="color: #000000;">];</span><span style="color: #008080;">33</span>         }<span style="color: #0000ff;">else</span><span style="color: #000000;">{</span><span style="color: #008080;">34</span>             <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span><span style="color: #000000;">;</span><span style="color: #008080;">35</span> <span style="color: #000000;">        }</span><span style="color: #008080;">36</span> <span style="color: #000000;">    }</span><span style="color: #008080;">37</span>     <span style="color: #008000;">//</span><span style="color: #008000;">在运行期间,动态增加或改变配置选项</span><span style="color: #008080;">38</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> __set(<span style="color: #800080;">$key</span>, <span style="color: #800080;">$value</span><span style="color: #000000;">){</span><span style="color: #008080;">39</span>         <span style="color: #800080;">$this</span>->data[<span style="color: #800080;">$key</span>] = <span style="color: #800080;">$value</span><span style="color: #000000;">;</span><span style="color: #008080;">40</span> <span style="color: #000000;">    }</span><span style="color: #008080;">41</span> <span style="color: #000000;">}</span><span style="color: #008080;">42</span> <span style="color: #008000;">/*</span><span style="color: #008080;">43</span> <span style="color: #008000;">//测试代码</span><span style="color: #008080;">44</span> <span style="color: #008000;">//测试是否可以创建单例模式对象出来</span><span style="color: #008080;">45</span> <span style="color: #008000;">$conf = conf::getIns();</span><span style="color: #008080;">46</span> <span style="color: #008000;">//读取选项</span><span style="color: #008080;">47</span> <span style="color: #008000;">echo $conf->host."<br>";</span><span style="color: #008080;">48</span> <span style="color: #008000;">echo $conf->user."<br>";</span><span style="color: #008080;">49</span> <span style="color: #008000;">//动态追加选项</span><span style="color: #008080;">50</span> <span style="color: #008000;">$conf->template_dir = "D:\LAMP\Apache2.2\htdocs\boolshop\include";</span><span style="color: #008080;">51</span> <span style="color: #008000;">echo $conf->template_dir;</span><span style="color: #008080;">52</span> <span style="color: #008000;">*/</span><span style="color: #008080;">53</span> config.inc.<span style="color: #000000;">php代码</span><span style="color: #008080;">54</span> <span style="color: #000000;">php</span><span style="color: #008080;">55</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">56</span> <span style="color: #008000;">file config.inc.php</span><span style="color: #008080;">57</span> <span style="color: #008000;">作用:配置文件</span><span style="color: #008080;">58</span> <span style="color: #008000;">*/</span><span style="color: #008080;">59</span> <span style="color: #800080;">$_CFG</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">();</span><span style="color: #008080;">60</span> <span style="color: #800080;">$_CFG</span>['host'] = 'localhost'<span style="color: #000000;">;</span><span style="color: #008080;">61</span> <span style="color: #800080;">$_CFG</span>['user'] = 'root'<span style="color: #000000;">;</span><span style="color: #008080;">62</span> <span style="color: #800080;">$_CFG</span>['pwd'] = '123456';

 

 

 
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn