模型,視圖和控制器?

當創建一個應用的時候,我們需要找到一種組織代碼的方法,使其易于找到正確的文件并且易于維護。和很多 Web 框架類似, CodeIgnite 框架也使用了模型、視圖、控制器結構,即 MVC 模式,來組織接著代碼文件。這種方式可以將數據,展示部分和流程部分分別作為單獨的部分存放在我們的應用中。需要注意的是,對于每一個元素的所擔任的角色會有很多種看法,本文描述了我們對此的看法。如果你有不同的看法,則可以根據需要隨意修改使用方式。

模型 主要用來管理應用的數據, 根據應用的特殊業務規則獲取數據。

視圖 是一個沒有或者少量邏輯的簡單的文件, 它只負責將數據展示給用戶。

控制器 主要承擔了膠水代碼的功能, 它主要在視圖層和數據存儲之間來回的處理并整合數據。

在最簡單的情況下,控制器和模型只是一個完成特定工作的類。他們雖然不是你可以使用的唯一類的類型,但他們是構成整個框架的核心。你也可以將控制器和模型文件存儲在任何你需要的位置,但是 CodeIgnite 框架在 /app 目錄中為我們指定了存儲目錄。我們將在之后進行詳細討論。

下面我們就來看一下這三個主要組成部分。

組成?

視圖?

視圖是最簡單的文件,一個視圖文件通常是一個HTML文件加入少量的PHP代碼。視圖中的PHP代碼應該盡可能的簡單,一般只是顯示一個變量內容,或者通過循環語句將數據輸出在表格中展示出來。

視圖從控制器中獲取數據并展示——控制器將數據發送給視圖,視圖通過簡單的 echo 調用將數據展示出來。你也可以在一個視圖中插入展示其他視圖,這樣可以很簡單的在每個頁面上展示出公共的頁眉和頁腳。

視圖文件通常存放在 /app/Views 目錄下,如果在創建文件時不按照一定的規則創建的話,會顯得我們的代碼雜亂無章。 CodeIgnite 框架雖然沒有規定任何的規則,但通過經驗我們規定在 Views 目錄下創建一個新的目錄對應每個控制器。然后通過方法名來命名視圖。這樣就會使我們之后查找起來更加容易。例如:用戶配置 可能會顯示在一個名為 User 的控制器中,并且方法名稱為 profile ,你就可以將該視圖文件保存在 /app/Views/User/Profile.php 這個路徑下,并這樣命名。

這種良好的組織代碼方式建議養成一個習慣。可能有些時候,你有一些其他需求需要以其他方式來組織代碼,沒關系,只要CodeIgnite框架可以找到這個文件,這個視圖就會被顯示。

點擊這里閱讀更多關于視圖的相關內容

模型?

對于許多開發人員而言,在確定執行哪些業務規則時會困惑。模型的主要任務是給應用維護單一類型的數據。比如:用戶,博客內容,交易信息等。所以,模型的工作有以下兩種,對數據進行采集或者放入數據庫中執行業務規則;檢索數據并將數據庫中的數據讀取出來。也就是進行數據的增刪改查的操作。

數據的任何限制和要求都由模型層承擔,包括在保存數據前將原始數據初始化,或者在數據傳給控制器前將數據格式化。這樣可以保證你可以不用在多個控制器中出現重復代碼,或者出錯。

模型類型的文件保存在 /app/Models 這個目錄下,雖然他們也可以使用一個命名空間分組,但是還是建議你將模型文件放在這個目錄下。

點擊這里閱讀更多關于模型的相關內容

控制器?

控制器主要承擔了幾個不同的角色。最常見的就是他們會接收用戶的請求,然后判斷這個請求應該執行什么樣的操作。而這一過程通常會涉及到將數據發送給模型層保存,或者去請求模型層的數據返回給視圖。控制器也會用來加載其他應用程序請求的除模型參與的任務。

控制器的林外的任務就是用來處理和 HTTP 請求相關的所有事情——重定向、認證, Web 安全,編碼等。總之,控制器是你的應用程序的入口,通過控制器訪問你的應用的用戶才可以到達指定的地方并獲取他們想要的數據使用格式。

控制器通常會保存在 /app/Controllers 這個路徑下, 雖然你也可以使用命名空間分組,但是還是建議你將控制器存放在該目錄下。

點擊這里閱讀更多關于控制器的相關內容