Model:数据模型层对数据进行加工和一些处理,就是数据相关的操作都在model层来操作、View:视图层,跟用户进行一些交互的界面上的东西,叫做View层,而Controller是用来处理业务逻辑的。
View首先问C层,要注册用户了,把注册用户的表单交给V层呈现出来,用户填好表单,提交给C层,c层拿到数据要进行一些额外的处理,用户名。密码是否合法等等一些数据的处理,处理好再把数据交给M层,M层就会连接数据库,把C层提交过来的数据插入数据库,数据库返回受影响的行数,即成功后M把结果再返回给C层,再返回给v层显示一个正确,这样的信息。
举栗YII:yii框架在进行请求的时候也是由MVC三层,请求site控制器,index方法。用户模块下的reg注册,访问的就是控制器,然后控制器通过一些方法,去调用V层,把V层展示出来,然后提交数据到user/doreg,在这个doreg方法就会调M层,把数据扔给M层,M层再存到DB当中。
单一入口的工作原理:
如:
通过参数拿到对应的值调相应的控制器和方法
大多数框架都可以通过URL重写的机制美化,
相比开发效率,处理效率可以忽略,这个低是理论,看不出来
例如在smarty中分配变量给前端,用assign,这里的变量如下图是name,在html代码中{$name}就可以拿到对应的值,对于smarty来说会把整个HTML文件全部都抓出来,把里面的字符串都抓出来,标签,内容等,然后去分析里面的特殊字符,比如现在这个变量,会分析花括号,分析好发现是smarty变量,这时候就要正则表达式进行替换,替换成assign分配过来的值。这是smarty的底层原理,他使用到了正则表达式来进行操作。
对于框架来说进行访问的大多数情况都是单一入口机制,多入口就是每个模块都有一个php文件,这样的话不好控制,当然对于框架来说,有些框架在操作的时候也可以创建多入口,比如说前台一个后台一个入口,前台是index.php,后台是admin.php前后台独立,
优点:可以进行统一的安全性检查,集中地处理程序都是在一个入口文件去做任何的一些处理功能,劣势是URL不美观,处理的效率会稍微偏低点。