PHP头条
热点:

从零开始之ecshop基础篇(17)


目标:基于自定义的mvc框架开发的案例(项目)

典型的业务逻辑:    电子商务:商城(京东),B2C,C2C(淘宝),团购,秒杀,代购

            内容管理:新浪门户类,优酷视频管理,博客文章管理,微博

            论坛:

我们的需求,商品管理案例!参考ecshop应该出现的商品管理的基本功能实现。

ecshop,使用率非常高,电子商务平台(网上商城系统)。

上传拷贝php源代码        创建数据    基本配置

下载ecshop的源代码,解压,将upload目录拷贝(上传)到web目录:建议改成ecshop的名字

使用浏览器,访问到ecshop目录中的index.php即可。自动跳转到安装界面(如果需要重新安装,也可以请求到该地址)

检查环境,典型的需要:mysql扩展,gd扩展(图片处理扩展)

配置信息

数据库服务器部分:

管理员信息:

安装测试数据:

等待安装完毕:

Tips:建议选择PHP5.3X版本

 

数据结构的设计

编码的设计

典型的编码,分成两大方向:二次开发,基于框架开发

二次开发:在已有的产品(业务逻辑都已经实现)上做修改,升级的开发方式。

优点:速度快,通用业务逻辑已经被实现。

缺点:定制型差。

典型的产品:

电子商务:ecshop,ecmall,shopex,zen-cart,oscommerce ,麦进斗

内容管理:dedecms,帝国cms,phpcms,drupal,wordpress

论坛:phpwind,discuz

框架开发:

框架,没有实现业务逻辑,只实现了底层代码。

优点:不用写重复的底层功能代码,直接用即可,定制性强。

缺点:周期较长。

典型的框架:ThinkPHP,Yii,Ci,Zend-framework,symphony

PHP代码与HTML代码 出现在同一文件中。

典型的是:

上面是PHP先实现所有的业务逻辑,下边再是HTML决定显示样式。

或者直接利用PHP echo ,输出需要的HTML代码。

2
3
4
5
6
7
8
9

            }

 

将负责数据处理,业务逻辑处理的PHP代码,与负责显示效果处理的HTML(CSS,JS)等分开来进行管理。

典型的实现:将负责显示的HTML相关部分,拆分到独立的HTML中,在PHP处理完业务逻辑后,再将HTML代码加载到该文件中。

简单的说就是把原来混编的代码分开到2个页面。这2个页面要组合起来才能实现和原来一个混编文件一样的效果。

比如:match_list.html(展示)match_list.php(逻辑) require './match_list.html';

 

template:参见match_list.html

使用html相关代码负责显示结构,使用动态代码php实现数据的展示,该类型的文件,在项目中,称之为模板文件,template.

要求:浏览器用户请求,必须请求负责逻辑功能的PHP文件才可以。

如何限制浏览器用户不能请求到html模板文件?

典型的实现方式2种:

2

2
3
4
5

</Directory>

2

Deny from All

2
3
4
5
6
7
8
9
10


//

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20


                $rows = $db->fetchAll($sql);
}

2
3
4
5
6
7
8
9
10
11
12
13
14

<hr>
<?php     <?php     <a href=    <?php     <a href=    <?php     <br>
    <?php <?php     
<?php 

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

/**
 * 
 */
         * 
     *
     * @return array 
     */            
                
            }
}

2
3
4
5
6
7
8
9
10
11
12
13

//
//$model_match = new MatchModel;
$rows = $model_match->getList();

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

<hr>
<?php     <?php     <a href=    <?php     <a href=    <?php 
    <a href=
    <?php <?php     <?php 

2
3
4
5
6
7
8
9
10
11
12

$model_match = new MatchModel;
$model_match->delById(

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

     *      *
     * @param $match_id
     *
     * @return bool
     */            
        
        
            }

2
3
4
5
6
7

 *  */  
 }

2
3
4
5
6
7
8
9

 *  */  
 }

2
3
4
5
6
7
8
9

                         }
 }

2
3
4
5
6
7
8
9
10
11
12
13
14

                 }
            
            }
 }

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

     *      *
     * @param $match_id
     *
     * @return bool
     */            
        
        
        

2
3
4
5
6
7
8
9
10
11

    <?php     <a href=    <?php     <a href=    <?php     <br>
    <?php <?php     
<?php 

Controller,控制器

2
3
4
5
6
7
8
9

//

2

2
3
4
5

    }    }

   

在相应的部分执行正确的控制器代码即可:

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

        $model_match = new MatchModel;
    $rows = $model_match->getList();
    

        $model_match = new MatchModel;
    $model_match->delById(    
}

2
3
4
5
6


//

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

 *  */          *      */          }
     
           * 
      */          }
 }

2
3
4
5
6
7
8
9
10
11

//$action = $a.//

2
3
4
5
6

        
    }
}

2
3
4
5
6
7
8
9
10
11
12

                    $model_student = new StudentModel;
        
            }
}

2
3
4
5
6
7

                }
}

2
3
4
5
6

<?php     <?php     <?php     <?php <?php 

2
3
4
5
6

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

////////

测试:localhost/six/index.php?c=Student&a=list localhost/six/index.php?c=Match&a=list

2
3


header(

强调:

有了单一入口,就要求,用户的所有的请求都要从单一入口文件请求到。

目录分成2个目录

体现框架代码和业务逻辑代码的区别

将基础模型,mysqlDB类定义文件放在框架代码:

将业务逻辑相应的控制器,模型,视图文件分别放在application目录中

入口文件,通常放置在站点根目录:

修改项目中使用的路径

2
3
4
5
6
7
8
9

    /index.php   入口文件
    /application 应用程序目录
        /model      模型类目录
        /view       视图类目录
        /controller 控制器类目录
    /framework   框架代码目录
        /Model.        /MySQLDB.class.php  mysql数据库的操作类        

www.phpzy.comtrue/php/5497.htmlTechArticle从零开始之ecshop基础篇(17) 目标:基于自定义的mvc框架开发的案例(项目) 典型的业务逻辑:电子商务:商城(京东),B2C,C2C(淘宝),团购,秒杀,代购 内容管理:新浪门户类,优酷视...

相关文章

相关频道:

PHP之友评论

今天推荐