PHP笔记之MVC(2)

目录

有关MVC的其他常见做法

请求分发器(前端控制器):

目录结构的设定:

平台的划分

基础常量的设定

自动加载的实现

禁止其他目录中文件的直接访问

ecshop电子商城

配置(安装)

使用MVC框架,模拟ECshop的登录界面和功能

首先,要设计“登录账户表”

然后,开始设计界面:

然后,模拟实现ecshop的登录功能:


有关MVC的其他常见做法

请求分发器(前端控制器):

先观察现有的控制器:

PHP笔记之MVC(2)

PHP笔记之MVC(2)

完整代码如下所示:

PHP笔记之MVC(2)

PHP笔记之MVC(2)

PHP笔记之MVC(2)

而且,在所有的“连接”(跳转,表单提交)中,都相应的改为:

PHP笔记之MVC(2)

目录结构的设定:

通常,我们会将一个MVC项目中的一些一些相应的文件,分门别类存放,结果就类似这样:

PHP笔记之MVC(2)

平台的划分

PHP笔记之MVC(2)

那么,我们也可以将他们进一步“聚合”,聚合为一个“大的MVC”框架下的多个相对独立的“站点”;

因此,我们的整个MVC框架,又可以进一步提示为:

PHP笔记之MVC(2)

我的实例:

PHP笔记之MVC(2)

相应的,其中的所有请求(链接/提交/跳转),都又得加上平台的信息了!

所有用户列表的视图中添加一个链接:

PHP笔记之MVC(2)

PHP笔记之MVC(2)

PHP笔记之MVC(2)

PHP笔记之MVC(2)

PHP笔记之MVC(2)

基础常量的设定

我们在mvc中,会用到很多“相对固定的目录路径”,使用一个常量来表示,常常能够简化代码!

在inde.php页面中:

PHP笔记之MVC(2)

相应的,其他一些需要载入文件的位置(主要是“控制器”中载入视图),也可以简化,比如:

PHP笔记之MVC(2)

自动加载的实现

PHP笔记之MVC(2)

说明:

          1,自动加载是指:在需要一个类的时候,自动去加载该类的对应类文件;

          2,自动加载,不能自动加载“视图文件”;

禁止其他目录中文件的直接访问

找到站点www.php39.com的配置中的“目录权限设置项”:

PHP笔记之MVC(2)修改为:PHP笔记之MVC(2)

重启apache。

然后,在mvc框架的application目录和framework目录下,都放置一个相同的文件(.htaccess),

其内容为(只有一行):

          Deny from All

如下所示:

PHP笔记之MVC(2)

PHP笔记之MVC(2)

ecshop电子商城

配置(安装)

PHP笔记之MVC(2)

然后, 在apache的虚拟主机中,添加一个站点,比如:

PHP笔记之MVC(2)

并重启apache。

然后访问: http://www.ecshop39.com

就可以看到它的安装界面:

PHP笔记之MVC(2) PHP笔记之MVC(2) PHP笔记之MVC(2)

PHP笔记之MVC(2)进入后台登录界面:PHP笔记之MVC(2)

我们就要用mvc的框架结构,去实现该界面,并实现其功能——登录!

使用MVC框架,模拟ECshop的登录界面和功能

首先,要设计“登录账户表”

——就是管理员表:

 PHP笔记之MVC(2)

然后,开始设计界面:

将源代码拷贝过来,并相应修改一些路径。

然后,模拟实现ecshop的登录功能:

1:修改表单:

PHP笔记之MVC(2)

2,并且,相应地,修改Admin控制(添加对应的方法):

PHP笔记之MVC(2)

3,然后,继续在AdminModel类中,去添加一个方法:CheckAdmin()

PHP笔记之MVC(2)

PHP笔记之MVC(2)

PHP笔记之MVC(2)

更多详细内容,请自行学习。