我目前正在尝试了解MVC框架如何在PHP中运行。因此,我已经创建了如何think
这个MVC在PHP中实现的基本草图:
[我知道缺少一些步骤,例如Router
如何解析route
以了解要加载的View
和Controller
,但这些步骤是基于技术的,并不是很重要,以便了解一般情况PHP中的MVC流程。]
我从这个article series中了解了我对PHP中MVC的理解。但是,我认为这个结构与大多数人们想到的结构不同,当他们在PHP中讨论MVC时,因为这个article(文章基本上说明了Controller
而且View
确实与Model
进行了沟通。
我现在想问你的是几个问题:
right
在PHP中实现MVC的方式吗?AjaxViews
仅返回例如json objects
和AjaxControllers
总是希望验证码能够证明这些ajax调用是legtitim吗?我知道已经有人问过几十个关于PHP的MVC的问题而且我一直在读很多文章,直到现在,但我认为只有阅读不能让我完全理解MVC 。
此外,在阅读上面链接的文章之后,我不再确定我在网上找到的其他关于MVC的文章是否以与上述文章相同的方式解释MVC 。因为如果他们不这样做,我会在阅读两个或多个不同的方法时尝试理解一个框架。< / p>
非常感谢您抽出时间回答我的问题!
根据下面的答案,我改变了我的MVC草图。以防有人找到此链接并想了解更多信息。
答案 0 :(得分:4)
让我先回答你的问题,然后再接受它。
Accept:
HTTP标头选择不同的模板(并在您的AJAX请求中发送类似Accept: application/json
的内容)。然后,您的视图将返回JSON模板而不是HTML模板。您的模型不仅仅是数据库的网关,而是所有逻辑发生的地方。所有的计算。请参阅另一个解释How should a model be structured in MVC?的优秀答案。
MVC的想法是简单地将您的应用程序分为三层:输入(控制器),逻辑(模型)和输出(视图)。这是按照PHP工作的常规方式进行扩展(这是一个请求,给我一个响应,都在同一页面中)。
出于这个原因,实施细节可能会有所不同,这个概念很重要。 “Web MVC”仅仅是几十年前人们组成的良好OOP实践和一些命名惯例的结果。
答案 1 :(得分:0)
它具有并行开发和代码重用能力。您的系统如何工作以及用户如何工作存在关注的分离。这提供了问题的解决方案。现在有边界,MVC。