FuelPHP 架構(gòu)概述

fuelphp 架構(gòu)概述

 

fuelphp 基于經(jīng)過實戰(zhàn)測試的 模型-視圖-控制器架構(gòu)以及 hmvc(分層mvc)支持。雖然 mvc 提供了靈活的分層應(yīng)用程序開發(fā),但 hmvc 更進一步實現(xiàn)了 web 應(yīng)用程序的小部件化。

fuelphp 的優(yōu)勢在于它不強制使用特定的方法來開發(fā)應(yīng)用程序。它只是提供了一個簡單易用的標(biāo)準(zhǔn)結(jié)構(gòu)。開發(fā)人員可以自由使用 fuelphp 提供的預(yù)定義功能集,或者在需要時對其進行修改。 fuelphp 提供的所有功能,包括核心功能,都可以根據(jù)應(yīng)用的需求進行更改。

 

型號

模型是應(yīng)用程序的業(yè)務(wù)實體。 controller和view以model的形式交換數(shù)據(jù)。模型可以統(tǒng)一表示我們的業(yè)務(wù)數(shù)據(jù)。它使數(shù)據(jù)庫層能夠以標(biāo)準(zhǔn)方式與 web 應(yīng)用層交互,并提供選擇、保存、編輯和刪除我們的數(shù)據(jù)庫實體的選項。

 

控制器

典型的 mvc 應(yīng)用程序從控制器開始。一旦用戶向 fuelphp web 應(yīng)用程序發(fā)送請求,該應(yīng)用程序就會收集有關(guān)該請求的所有信息并將其發(fā)送到控制器。 controller 完成請求頁面所需的業(yè)務(wù)邏輯,然后以 model 的形式調(diào)用相關(guān)的 view 以及處理后的數(shù)據(jù)。

 

查看

view 是 mvc 應(yīng)用程序的表示層。視圖決定如何向用戶顯示模型。它支持簡單的數(shù)據(jù)渲染到高級布局,使網(wǎng)站能夠在所有頁面上規(guī)范化設(shè)計。 view 還提供主題化支持,從而可以在整個應(yīng)用程序中快速更改設(shè)計。

 

演示者

presenter 是 fuelphp 提供的一項特殊功能。它是控制器和視圖之間的粘合劑。 controller 可以分擔(dān)它的一些低級職責(zé),例如從數(shù)據(jù)庫中檢索模型、為視圖生成數(shù)據(jù)等。 controller 調(diào)用 presenter 而不是 view,后者又調(diào)用 view。 presenter 實現(xiàn)了業(yè)務(wù)邏輯和表示層的純粹分離。

 

分層 mvc

fuelphp 提供了從另一個控制器調(diào)用一個控制器的選項,類似于來自客戶端(瀏覽器)的請求。如果任何控制器調(diào)用另一個控制器,被調(diào)用的控制器會將響應(yīng)返回給調(diào)用控制器,而不是將其呈現(xiàn)給客戶端(瀏覽器)。這將啟用 web 應(yīng)用程序的 widgetization。例如,評論部分可以顯示為獨立頁面,也可以顯示為主(博客)頁面的子部分。

 

模塊

fuelphp 的一個顯著特點是可以將 web 應(yīng)用程序的一部分轉(zhuǎn)換為模塊,可以在不同的應(yīng)用程序之間共享。例如,只需將模塊代碼從源應(yīng)用程序復(fù)制到目標(biāo)應(yīng)用程序,就可以在另一個應(yīng)用程序中重用為應(yīng)用程序創(chuàng)建的博客模塊。

請注意,創(chuàng)建新模塊與開發(fā)主應(yīng)用程序一樣簡單。結(jié)構(gòu)與主應(yīng)用程序類似,唯一的區(qū)別是模塊應(yīng)該編碼一個單獨的文件夾。

 

包裝

fuelphp 提供了一個選項,可以將代碼組織到一個名為 package 的單元中。一個包可以包含 web 應(yīng)用程序所需的一個或多個功能。例如,orm、電子郵件等數(shù)據(jù)庫組件可以組織成一個包,并在需要時使用。

包與模塊的不同之處在于包不包含任何網(wǎng)頁或部分網(wǎng)頁。包可以在 fuelphp 以及任何其他 php 框架中使用。

 

工作流程

fuelphp 的工作流程簡單易懂。如下圖所示。

  • 用戶向應(yīng)用程序發(fā)送請求。
  • 控制器接收請求并通過與模型交互來收集信息,模型又與數(shù)據(jù)庫交互。
  • 控制器通過向其他控制器發(fā)送子請求來與其他控制器交互來收集信息。
  • controller 將檢索到的模型發(fā)送到視圖,然后視圖生成演示文稿并將其作為響應(yīng)發(fā)送給客戶端。
  • 在某些情況下,控制器可能會將控制權(quán)交給演示者。在這種情況下,演示者從模型中收集信息并將其發(fā)送給客戶端。此處,演示者不執(zhí)行任何業(yè)務(wù)邏輯,只是從數(shù)據(jù)庫中檢索模型。

 

下一節(jié):fuelphp 應(yīng)用程序

fuelphp 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频