📜  FuelPHP-体系结构概述

📅  最后修改于: 2020-10-25 04:18:33             🧑  作者: Mango


FuelPHP基于经过实战测试的模型-视图-控制器体系结构以及HMVC(分层MVC)支持。尽管MVC提供了灵活且分层的应用程序开发,但HMVC进一步迈出了一步,可实现Web应用程序的窗口化。

FuelPHP的优势在于它不强制开发应用程序的特定方式。它只是提供了一个简单易用的标准结构。开发人员可以自由使用FuelPHP提供的预定义功能集,也可以在需要时对其进行修改。 FuelPHP提供的所有功能(包括核心功能)都可以根据应用程序的要求进行更改。

模型

模型是应用程序的业务实体。 Controller和View以模型的形式交换数据。通过模型可以统一表示我们的业务数据。它使数据库层能够以标准方式与Web应用程序层进行交互,并提供选择,保存,编辑和删除数据库实体的选项。

控制者

典型的MVC应用程序是从Controller启动的。用户将请求发送到FuelPHP Web应用程序后,该应用程序将收集有关该请求的所有信息,并将其发送到Controller。 Controller执行请求页面所需的业务逻辑,然后以模型的形式调用相关的View以及处理的数据。

视图

视图是MVC应用程序的表示层。视图决定了如何向用户显示模型。它支持对高级布局进行简单的数据呈现,从而使网站可以在所有页面上对设计进行标准化。 View还提供了主题支持,可在整个应用程序中快速进行设计更改。

主持人

Presenter是FuelPHP提供的一项特殊功能。它是Controller和View之间的粘合剂。 Controller可以承担一些底层责任,例如从数据库检索模型,为视图生成数据等。控制器调用Presenter而不是View,后者又调用View。 Presenter使业务逻辑和表示层完全分离。

分层MVC

FuelPHP提供了一个从另一个控制器调用一个控制器的选项,类似于客户端(浏览器)的请求。如果任何控制器调用另一个控制器,则被调用的控制器会将响应返回给调用控制器,而不是将其呈现给客户端(浏览器)。这将启用Web应用程序的窗口小部件化。例如,评论部分可以显示为独立页面,也可以显示为主页(博客)的子部分。

模组

FuelPHP的显着特征之一是可以将Web应用程序的一部分转换为模块,这些模块可以在不同的应用程序之间共享。例如,只需将模块代码从源应用程序复制到目标应用程序,便可以在另一个应用程序中重用为应用程序创建的博客模块。

请注意,创建新模块与开发主应用程序一样简单。该结构与主应用程序相似,唯一的区别是模块应编写一个单独的文件夹。

FuelPHP提供了将代码组织到称为Package的单个单元中的选项。程序包可以包含Web应用程序所需的一个或多个功能。例如,可以将数据库组件(例如ORM,电子邮件等)组织到一个包中,并在需要时使用。

包与模块的不同之处在于,该包不包含任何网页或部分网页。软件包可以在FuelPHP以及任何其他PHP框架中使用。

工作流程

FuelPHP的工作流程简单易懂。下图描述了它。

工作流程

  • 用户向应用程序发送请求。

  • 控制器接收请求并通过与模型进行交互来收集信息,而模型又与数据库进行交互。

  • 控制器通过向其他控制器发送子请求来与其他控制器进行交互来收集信息。

  • 控制器将检索到的模型发送到视图,该视图又生成表示并将其作为响应发送给客户端。

  • 在某些情况下,控制器可能会将控制权交给演示者。在这种情况下,演示者从模型中收集信息并将其发送给客户端。在此,演示者除了从数据库中检索模型之外,不执行任何业务逻辑。