用 AJAX、MVC 实现 OOP PHP?

Posted

技术标签:

【中文标题】用 AJAX、MVC 实现 OOP PHP?【英文标题】:Implementing OOP PHP with AJAX, MVC? 【发布时间】:2011-11-19 05:38:33 【问题描述】:

我是 OOP 范式(和 AJAX/jQuery)的新手,但想创建一个采用 MVC 架构的基本站点,在 php 中,具有 AJAX 功能。我画了一张简图,说明我目前是如何“理解”架构的。

大概在使用 AJAX 时,它充当控制器直接与模型交互以检索所需的任何功能?我添加的文件名只是为了让您了解我“认为”应该包含的内容。例如index.php 将是一个 html/css 模板,其中包含相关位置的模块(无论它们是什么) - news.php、navigation.php 等。 database.php/pager.php 可能包含类和扩展类我为分页创建,或连接/查询数据库我正在努力查看控制器组件可能是什么 - 它肯定最终会成为“第二个后端视图” - 从模型中调用类以发送到风景?

我可能在这里很好地表达了我的困惑 - 视图、控制器和模型中应该包含什么...... AJAX 功能在技术上是另一个控制器吗?任何类似于我上面的图表都会非常有帮助。

【问题讨论】:

MVC 不是架构。这是一种设计模式。 我的错,需要解释一下区别吗? MVC 是一种架构设计模式。 @Chris 请参阅secure.wikimedia.org/wikipedia/en/wiki/Software_architecture。 MVC 只是一种 Web 呈现模式。另见devzone.zend.com/article/12997 @Gordon 所以你的意思是 MVC 根本不会影响你的架构? 【参考方案1】:

有一种方法可以看到这一点。

Ajax 是在 MVC 组件(如 HTTP POST)之间发送数据的媒介。在这方面,它没有出现在 MVC 模式中。 如果实际用于显示数据,JSON格式的实际显示也可以看作是一个视图。

从这里你应该能够得出自己的结论。

【讨论】:

【参考方案2】:

您可以使用名为“YII”的 PHP 最好的 MVC 架构。从这里获取更多信息 http://www.yiiframework.com/

【讨论】:

【参考方案3】:

好的,所以 AJAX 是一种传输方法,而不是像模型或控制器这样的应用程序。

您的客户端将通过 AJAX 与一个或多个控制器进行通信。

这些控制器使用或调用模型来处理不同类型的任务。

然后控制器或模型使用传输友好格式(JSON、YAML、XML)或视图(HTML 片段)的消息响应请求。

控制器处理请求,这意味着它接收初始客户端输入。根据具体情况,此输入必须在用于您的应用程序之前进行格式化、规范化、变异或转换。

然后控制器使用或调用模型;这意味着它要么处理业务逻辑本身(旧样式)并使用模型来访问数据源,要么将应用程序的主要工作流程完全交给模型(新样式)。

第一个实例中的模型抽象了一个持久存储实体(如数据库)。在当代应用程序设计中,它还执行应用程序的主要业务逻辑。

【讨论】:

所以,只是为了确保我理解(或至少我认为我理解的内容)...假设我有一个“目录”网站,有人点击了一个类别链接(在视图中) .然后控制器将接收该请求,然后调用从数据库中获取信息所需的模型,另一个模型将数据排序为 X 顺序,另一个模型删除 X 行(以及其他任何内容)。然后控制器会将这些信息发送回类别视图模板? (暂时忘记 AJAX)。我觉得另一个图表正在出现......如果没有,我很难进一步解释我的理解 给出一个文件夹结构和代码示例......我可能会这样做。我正在努力想象一切将如何整合 - 我想我理解这种模式,只是不知道如何实现它。 你不需要那么多模型。一个名为“Category”的模型将具有诸如“create”(创建新类别)、“get_subcategories”(可能带有 order 参数)之类的方法。然后,您将拥有另一个名为“帖子”的帖子,您可以在其中“创建”、“删除”、“get_view_counter”、“update_view_counter”等……这与数据库中的表大致为 1:1 关系。跨度>

以上是关于用 AJAX、MVC 实现 OOP PHP?的主要内容,如果未能解决你的问题,请参考以下文章

php基础知识oop/mvc/orm/aop

php / oop / mvc使用markdown文件的操作顺序(无数据库)

MVC Ajax Helpers

用纯 C 实现的 MVC

使用php和ajax实现登录

用php的mvc框架实现增删查改功能(php+mysql)