FuelPHP 架构概述

FuelPHP 基于经过实战测试的 模型-视图-控制器架构以及 HMVC(分层MVC)支持。虽然 MVC 提供了灵活的分层应用程序开发,但 HMVC 更进一步实现了 Web 应用程序的小部件化。

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

型号

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

控制器

典型的 MVC 应用程序从控制器开始。一旦用户向 FuelPHP Web 应用程序发送请求,该应用程序就会收集有关该请求的所有信息并将其发送到控制器。 Controller 完成请求页面所需的业务逻辑,然后以 Model 的形式调用相关的 View 以及处理后的数据。

查看

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

演示者

Presenter 是 FuelPHP 提供的一项特殊功能。它是控制器和视图之间的粘合剂。 Controller 可以分担它的一些低级职责,例如从数据库中检索模型、为视图生成数据等。 Controller 调用 Presenter 而不是 View,后者又调用 View。 Presenter 实现了业务逻辑和表示层的纯粹分离。

分层 MVC

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

模块

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

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

包装

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

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

工作流程

FuelPHP 的工作流程简单易懂。如下图所示。

Workflow

  • 用户向应用程序发送请求。
  • 控制器接收请求并通过与模型交互来收集信息,模型又与数据库交互。
  • 控制器通过向其他控制器发送子请求来与其他控制器交互来收集信息。
  • Controller 将检索到的模型发送到视图,然后视图生成演示文稿并将其作为响应发送给客户端。
  • 在某些情况下,控制器可能会将控制权交给演示者。在这种情况下,演示者从模型中收集信息并将其发送给客户端。此处,演示者不执行任何业务逻辑,只是从数据库中检索模型。

下一章:FuelPHP 应用程序

 在本章中,我们将看到如何在 FuelPHP 框架中创建一个简单的应用程序。如前所述,您知道如何在 Fuel 中创建新项目。我们可以举一个员工详细信息的例子。让我们首先使用以下命令创建一个名为 Emplo ...