首頁 > 後端開發 > php教程 > 第一講商城工程搭建(第138講)

第一講商城工程搭建(第138講)

WBOY
發布: 2016-07-29 09:06:55
原創
785 人瀏覽過

一:商城框架搭建示例图

第一講商城工程搭建(第138講)

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

第一講商城工程搭建(第138講)              第一講商城工程搭建(第138講)

三:代码部分

index.php代码

<span>1</span> <span>php
</span><span>2</span><span>/*</span><span>*
</span><span>3</span><span>用户直接访问的页面
</span><span>4</span><span>先加载框架初始化文件:init.php
</span><span>5</span><span>*/</span><span>6</span><span>require</span>('./include/init.php'<span>);
</span><span>7</span><span>$conf</span> = conf::<span>getIns();
</span><span>8</span><span>echo</span><span>$conf</span>->host."<br>";
登入後複製

init.php代码

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

db.class.php

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

conf.class.php代码

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

 

以上就介绍了第一講商城工程搭建(第138講),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板