2017-09-06 57 views
-2

我正在学习PHP编程,并遇到MVC(模型视图和控制器)。任何人都可以解释更多关于模型和控制器?不是控制器和模型是相同的在PHP MVC

在以下堆栈溢出问题What is the best definition of MVC?中,有一个模型负责数据库的答案。但是不是控制器哪个进程和使用数据库?

+1

控制器是你的房地产经纪人,模型是你感兴趣的房子和一个看法是选择性游代理会给您。代理商将收集可用房屋的清单,然后准备一个最能迎合他们的视图。显然,在这些理由之中,没有人可以争辩说房地产经纪人和房子是同一件事。 – apokryfos

回答

1

不,他们是不一样的。该模型包含您的应用可以“做”的所有内容。

  • 描述数据结构的类?模型的一部分。
  • 创建新用户的功能/方法/服务?模型的一部分。
  • 发送电子邮件通知?模型的一部分。
  • 复杂的数据库查询?模型的一部分。
  • 其他所有内容?模型的一部分。

控制器是一个“模型和外界之间的接口”。 Controller接受来自外部世界的输入,如HTTP请求,命令行输入或事件总线上的事件,并根据该输入决定应该在模型中触发哪些操作,以及可能使用哪种视图来响应。对于不同的场景(Web服务器,命令行界面,cron作业),您可能会有不同的控制器,这些场景可以将这些不同的场景适用于底层模型中的操作。

-1

对于PHP中的MVC,我发现Codeigniter非常有用! Altough它不同于MVC一点在其他语言... 这里从theyr定义:

  • 模式代表你的数据结构。通常,您的模型类将包含帮助您检索,插入和更新数据库中的信息的函数。
  • 查看是正在呈现给用户的信息。视图通常是一个网页,但在CodeIgniter中,视图也可以是页眉或页脚之类的页面片段。它也可以是一个RSS页面,或任何其他类型的“页面”。
  • 控制器充当模型,视图和处理HTTP请求并生成网页所需的任何其他资源之间的中介。

https://codeigniter.com/user_guide/overview/mvc.html

+0

这不是MVC。你写的CodeIgniter的描述,这是被宣传为MVC ......它不是。 –

-2

不,控制器和模型在MVC体系结构中不一样。该模型正用于跟踪所有业务数据。 控制器告诉它该做什么,模型知道如何去做

控制器编排应用程序。控制器接收来自外界的事件(通常是用户输入),与模型交互,并向用户显示适当的视图。

该模型负责维护应用程序的状态。模型不仅仅是数据;它会强制执行所有适用于该数据的业务规则 。

要了解这些概念如何组合在一起,看到 如下图所示:enter image description here

相关问题