MVC框架就是提供将程序模块化的一种设计思想,使用该框架可以增加程序的可读性,实现分离,当我需要更改其中一部分代码时而不需要代码整体更改。那么MVC究竟对应着PHP代码的那些部分呢?使用过think PHP框架或者yii框架的开发者都知道,程序开发时会有一些固定的目录,开发过程中使用类似与Yii框架的ODP框架,该框架与常用的框架一样包含了很多的第三方库,有自己的目录结构,通常自定义的一些功能接口会放在app目录下,与thinkphp框架一样。MVC框架指的就是模型层、视图层和控制层。工作的流程就是web层-->control层--->module层-->view层。那么对应程序分别对应什么呢?一开始一直认为c对应的就是controller,但是通过阅读代码,m就是module目录,通过一点点的学习后发现,自己理解的偏差。
程序中的controller目录对应的是router层。
而MVC对应的开发目录如下:
M(模型层):对应的一般是程序中的data层,此部分与后端数据库交互,实现数据的基础处理
C(控制层):对应者程序中的Page层,该层负责向M层发送基础的指令,并将结果返回给V层。
V(视图层):对应的是程序中的action目录,程序执行后将结果返回该层,负责将结果呈现给用户。
那么web是如何与PHP脚本交互的呢?web发起http请求,首先会经过后端服务器webserver,后端环境通常为nginx或lightted,开发过程中使用的为nginx服务器,由于与后端PHP建立socket链接,而PHP不支持socket通信,因此使用factcgi或cgi与PHP脚本进行交互,fastcgi和cgi是进程管理器,之间的区别会在下一节记录。php是一种解释性执行语言,需要有环境的支持,通常要借助php脚本解释器执行因此执行过程如下: