根据页面显示与逻辑分离的思想,浏览器请求的是逻辑文件,而页面显示文件仅供逻辑文件载入使用。
这种显示文件,里面包含HTML与PHP等混编的文件,有一个特点,就是PHP代码仅是用来输出数据,而不是用来处理数据,我们视这种文件为模板文件。
模板文件会泄露PHP业务逻辑,必须防止被浏览器直接访问。
这里有两种方法来处理模板文件。
第一种方法,把模板文件放入到一个不被浏览器访问的单独目录里,而该目录通过浏览器无法访问。
原理:通过.htaccess设置目录权限,从而隐藏了目录。
即使通过浏览器直接访问模板文件,也无法权限访问,提示403 Forbidden。
注意:要保证.htaceess能够被执行,需要依赖于apache配置文件允许使用分布式配置文件.htaccess
另外一种方法需要用户有更高的权限,一般服务器是独立主机,把模板文件放到根目录之外的某个位置。
这样用户是无法访问到的,因为通过浏览器访问的,始终都是在根目录里面访问。
原理:逻辑文件里载入模板文件,是通过require来将模板文件载入到php逻辑运行环境里,与逻辑文件一同被载入到内存。
而用户访问模板文件,通过URL来访问模板文件。
至此,已经完成了显示和逻辑的两层分离。
但是,如果功能越来越多,代码和页面也越来越多,会发现某个页面的逻辑与另一个或多个页面逻辑相似,造成冗余,因此,需要将逻辑文件再一次分离,这种思想就是MVC思想。
1、数据处理层(Model层)
2、功能调度层(Controller 控制器)
3、页面结果显示(View 视图层,即模板文件)
注意事项:
① 浏览器请求的是功能调度页面,即请求的是控制层页面,然后由控制器来调用数据处理层Model和页面结果显示层View;
② 模型层Model和View视图层之间,不存在任何交互;
③ 模型层Model和View视图层,只能被控制器Controller所调用。
原文地址:https://www.cnblogs.com/mnhome/p/9853371.html