|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。 最近设计形式流行,MVC到处可见,PHP范畴也不破例,良多服装论坛都入手下手会商在PHP中利用MVC。但是,M、V、C在PHP中究竟该若何完成?MVC真的合适PHP么?这里Easy给出一些本人的思虑。
MVC的原型
MVC原本是存在于Desktop法式中的,M是指数据模子,V是指用户界面,C则是掌握器。利用MVC的目标是将M和V的完成代码分别,从而使统一个法式可使用分歧的体现模式。好比一批统计数据你可以分离用柱状图、饼图来暗示。C存在的目标则是确保M和V的同步,一旦M改动,V应当同步更新。
JAVA中的MVC
JAVA把MVC引入了Web范畴,并在此基本上架构出了一套称为Model2的系统。因为Web的特别性,JAVA中的MVC和Desktop中的MVC其实不完整分歧。次要缘由是Web中的V不是延续的,用户每会见一次,V就要从头生成一次,所以V一直是和M分歧的,不需求C来掌握同步。那末JAVA中的C在干甚么?JAVA中的C凡是用于流程的转向,其适用的是Dispatch形式,不再是Desktop中的C了。
PHP中的MVC
要在PHP华夏封不动的COPY JAVA的MVC是不成能的。成绩次要体现在M上,在JAVA中,M是自力于营业逻辑和体现逻辑的数据模子,在办事器端跨页面存在,JAVA Bean饰演的就是这个角色。而PHP历程其实不长工夫驻留于内存,只在PHP页面入手下手履行时创立,在页面注释履行停止时就已停止。在如许的情形下,咱们基本没法直接完成M。所以一切宣称完成了MVC形式的PHP程式都只能经由过程摹拟手腕来完成M。完成的体例通常为在以后页面停止前把数据存入数据库或cookie/session,鄙人一个页面中再透过数据库或cookie/session重建M。如许的体例和JAVA中的Bean比起来可以说是开支伟大,原本往内存中写数据的复杂操作如今要从办事器端传到客户端或数据库,然后再传回来。与其用这么大的开支来保护一个数据模子再在最初把这个模子塞回数据库,还不如直接依据需求更新数据库里边的数据。
如今PHP中的MVC架构可以用下图来暗示。
然后咱们再来看V。如今良多PHP法式复杂的利用了一些模板手艺就在申明中写“采取MVC架构”。其实绝大多半的PHP模板法式都只是分别HTML和PHP的,而非MVC强调的显示逻辑和营业逻辑分别。一个混用HTML和PHP的页面一样可所以MVC的一部分。若何分别显示逻辑和营业逻辑至今没有一个写意的计划。我团体则对照认同http://www.phpe.net/articles/384.shtml的完成计划。至于C,和JAVA中差不多,仍是被用作转向,这个在PHP中其实其实不主要。
一个极耗资本的M + 一个区分不大的V + 无关紧要的C 组成了PHP中所谓的MVC。
基于以上剖析,Easy以为,PHP原本的3层构架比所谓的MVC更加高效,而3层构架中的体现层要处理的成绩MVC中的V也一样存在。一个改善后的3层架构比MVC更合用于PHP。
PS:有的计划把营业逻辑并入M中(http://www.phpe.net/articles/382.shtml),这实际上是MVC的思惟南辕北辙的。
更多相干会商请到会商区:http://club.phpe.net/index.php?act=ST&f=15&t=4720 告诉你了一个方式,但是缺少努力这一环节,那也是白搭。 |
|