本文目录一览:
- 1、详解PHP实现MVC的几种方法
- 2、关于MVC架构的PHP项目问题
- 3、php中MVC的开发模式如何去理解?
- 4、用PHP做一个项目怎么才算是一个MVC项目,求不要粘贴复制,讲一讲心得体会
- 5、什么是MVC以及PHP怎样实现MVC
详解PHP实现MVC的几种方法
相信所有习惯了使用MVC来组织自己的项目的人,让他选择一个新的项目构架时,一定不会放弃MVC。传统的面相过程式的开发方式在处理中型以上的应用时,就开始显得力不从心。即便我们能够快速的完成需求,但是在需求发生变更后或者进行后期维护的时候,我们会深深地陷入我们早期搭建的陷阱中。什么是MVC?关于MVC的定义和解释,可以说多种多样。我们可以在Wiki或者[2]中找到更为详尽的解释,这里我并不打算,也没有能力进行深入的讲解,从PHP开发的角度来讲,MVC可以概括为:视图(The View):一说到视图,我们很多人都会想到模板引擎(诸如Smarty等等)。其实就是各种各样的输出,比如说html模板和Javascript文件等。模块(The Model)模块代表了程序的逻辑,在企业应用中通常称为业务逻辑层。一般来讲,这一层完成的工作是把原始的数据处理成按照我们设计的数据结构存储的有意义的数据序列,并将这些数据交给视图去处理。通常情况下, 模块中会利用一个数据抽象类来进行与数据操作有关的处理。 关于MVC的是否适合PHP的争论也很多,人们不断的讨论MVC是否适合PHP[3],现在也已经有了很多的MVC框架,诸如PHP MVC Frameworks中列出的[4]。那么,为什么人们这么热衷于MVC,我们为什么要使用MVC在我们的设计中呢。为什么用MVC?MVC最早是用来解决桌面GUI的编程问题,最早的MVC框架应该是Sun在1999年提出的Model 2,后来演变成了Struts。MVC带给人们深刻的印象,但是我们在使用的过程中,却并没有认真的想过为什么使用MVC。在传统的桌面应用中,一旦Model中有时间发生,我们可以主动的让View界面进行刷新,从而展示后台发生的变化。而在Web应用中,我们似乎限于传统的Http的Request/Response的方式,我们似乎没有办法让用户端进行更新。这一段讨论,并不是认为MVC不能够用来进行WEB应用的开发,而是觉得从某种程度上来说,他还不是最合适的。关于使用MVC的争论还有很多[1],但是相信所有习惯了使用MVC来组织自己的项目的人,让他选择一个新的项目构架时,一定不会放弃MVC。如何PHP实现MVC?下面是一个超级简单的MVC结构实现,甚至连数据源都用了一个内置的固定数组,虽然简单,但其实众多的PHP Framework核心实现的思想应该和这个是差不多的,只不过一些framework提供了更多的方便开发者使用的工具,我也想自己来实现一个PHP的框架,目前正在着手策划中,也希望自己能够从框架的开发中学习到更多的PHP设计思想和方法。
关于MVC架构的PHP项目问题
一般都是model层的比较多,因为他要处理数据反馈控制层,当然也包括一些其
他操作,这些操作必然是辅助与控制层的,一个或多个细节上的功能,即:函
数。都是来帮助控制层完成一个请求的。控制层,一般不需要太多的代码,因
为他只需直接的判断用户过来的请求即可,是连接M和V的,通常叫做业务层。
视图层:即V层,这部分不属于逻辑代码了,无非就是输出的样式,但如果
你用到模板的话,多多少少结合模板可以在页面判断下,还是相当方便的。
假如不借助于任何框架,一般不必要的逻辑代码还是要与html标签分开的,
因为这本身就是MVC编程的一个亮点。 加油吧,做完一个以后分析分析,总
结总结,很容易把握的。做多了就灵感了~
php中MVC的开发模式如何去理解?
MVC设计模式把一个软件组件区分为三个不同的部分,model,view,controller。
MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC模式最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC模式作为开发Web应用的架构模式。MVC模式是一种架构模式,其实需要其他模式协作完成。在J2EE模式目录中,通常采用service to worker模式实现,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式组成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中Model是代表组件状态和低级行为的部分,它管理着自己的状态并且处理所有对状态的操作,model自己本身并不知道使用自己的view和controller是谁,系统维护着它和view之间的关系,当model发生了改变系统还负责通知相应的view。
View代表了管理model所含有的数据的一个视觉上的呈现。一个Model可以有一个以上的View,但是Swing中却很少有这样的情况。
Controller管理着model和用户之间的交互的控制。它提供了一些方法去处理当model的状态发生了变化时的情况。
用PHP做一个项目怎么才算是一个MVC项目,求不要粘贴复制,讲一讲心得体会
MVC是一种设计模式,实际运用中可以将个人理解与实际情况相结合设计,这不是三言两语能够说清楚的事,更多地是视乎个人经验和项目具体需求。
我觉得首先你得先参透一下MVC的基本理念。比如你写代码,为什么不将所有代码全部写在一个方法里面,而要分开那么多方法,而分开那么多方法又是按照什么规则去分的?MVC也是一套规则,提供给我们一种工作的指导思路。
不知道你的PHP项目是不是一个web项目,如果是,那么现在web项目将V部分分离开来一般使用一些模板引擎。
我个人也在私下做着一个web项目,对此深有感触。我想说MVC只是项目中一种重要的思想而已,不必拘泥于这种思想,其实一个web项目还有很多其它的重要的东西。比如各种库啊,包啊,组件啊,继承,组合等思想啊,系统,模块等认识啊,外部,内部,通用,不通用等等理解,种类,角色等等区分,兼容的考虑,传统与及时的运用,设备环境的检测,会引入第3方插件并且把握住第3方源码等等一大堆事情,足够让人精疲力尽还看不到尽头。如果你能参透我以上所说,那么你将能把至少10个以上领域的东西融汇一体(比如PHP语言也算一个领域),蕴藏着无限的能量。
什么是MVC以及PHP怎样实现MVC
其实你的问题一开始就问错了,即然你问了,我就随便说说好了。
MVC 是一种设计风格,并不是一种具体手法。每个人写代码都有自己习惯的一种设计风格。MVC 是应用程序开发常用的一种风格,实际上并不适合 PHP,因为 PHP 的工作环境注定了它很难做出像样的控制器,也就是 Controll 。
MVC 本来的设计风格是:整个系统由一个程序启动,再根据用户操作调用各个处理模块,根据数据结果来决定显示成什么样给用户看。就像我们平时用的各种程序的主界面。这样程序员创建好主程序以后,只要把注意力集中在开发各个子功能上就可以了。。
可是 php 大多数情况下工作于 web 环境,有“页”的概念,每次执行都是一个新的请求。这就注定了很难实现真正的 MVC,因为用户看到页面时,PHP 已经执行完了,不可能再切换去调另一个 模型M 和 视图V 。
目前自称 MVC 的各种框架。也只不过是用一个程序判断请求,加载不同的功能块。只能称之为“单点入口”,在思路上是“请求相同的部份,而包含不同的部份”。这个入口程序实际上啥也没做,所以算不上是 MVC。反而 JS 开发的富客户端更接近一些。由一个 JS 主程序,跟据用户请求决定调用哪些数据,再把界面改变成什么样。
设计风格是前人总结出来的东西,在当前语言,当然环境,当前思维方式下。比较容易继续思考的一种设计方式。MVC 只不过是其中一种,而且并不是最适合 PHP 的一种。偏偏被炒作得好像标准似的。。
如果你一定要, 就去看一下 “PHP 单点入口实现”吧,已经是比较接近的东西了。如果一次性的控制器也能算控制器的话……