模型-视图-控制器 (MVC结构)

何谓MVC?

MVC是一种根据程序功能来分离应用程序代码的方式。在应用程序流里,它起始于一个被载入的控制器,该控制器执行一个从模型获取数据的方法,并根据执行结果来决定接下来加载哪个视图。

控制器

控制器类位于 APPPATH/classes/controller

Fuel的路由,对加载哪个控制器及其调用哪个方法握有生杀大权。这关系到你的应用程序的本源————你从哪里来?控制器决定采取什么行动、对用户输入作何反应、操作哪个数据、向用户反馈哪个视图。然而控制器并非事必躬亲,而是指使模型与类去做这些事。

阅读更多关于 控制器(戳这里) 的资料。

模型

模型类位于 APPPATH/classes/model

模型用于随时读取、操作、或删除数据。模型是一种数据的表现形式,并具备改变这些数据的方法。例如:你绝不应该将SQL语句写入控制器中,而是应该写在模型中,并使用控制器调用模型来执行SQL。这么做的优势在于改变数据库时不用相应修改所有控制器而只需修改相关模型类。

阅读更多关于 模型(戳这里) 的资料。

视图

视图类位于 APPPATH/views

视图包含你的HTML,它绝不该出现在控制器类中,或其他没有明确表明需要输出内容的类中。从逻辑层分离出设计层,以确保在改变设计时,只需改变视图层而无需考虑控制器类。
因此,视图层应该只包含PHP中的 echoforeach 方法。

阅读更多关于 视图(戳这里) 的资料。

展示控件

展示控件 类位于 APPPATH/classes/presenter

一旦你的应用程序变得复杂,你会发现很难决定某一段逻辑处理是否真的属于某个控制器,它是否真的对视图层特别重要且对应用程序逻辑来说形同鸡肋?这时候展示控件就该登场了,他们充当控制器与视图间的粘合剂。

阅读更多关于 展示控件(戳这里) 的资料。