2015-05-11 169 views
1

我想使用框架構建一個簡單的CRUD站點,但我對它的文件結構/概念感到困惑。我理解MVC的概念,過去我使用CodeIgniter完成了項目。我正在關注他們的official site上的教程,做了很多配置,並嘗試在它們提供的框架應用中創建一個模塊,這樣做沒有問題。因此,這裏是我的問題,什麼是Zend Framework模塊?

  1. 每天模塊本質上是一個網站?每當我創建一個使用該框架的新網站時,我是否會在該Zend應用程序文件夾中創建一個新模塊?

  2. 或者,是網站的每個頁面/子頁面一個模塊

回答

2

模塊出來之前(即Zend的2)之前,你必須手動聲明含有不同種類屬於不同的容器(模塊)控制器的文件夾中。這當然不是很方便,我很確定他們已經採用了模塊系統,更像是Symfony 2,它是面向模塊的。

模塊不是必然一個網站,但可以是您的網站的一部分:例如,您可以使用一個模塊進行管理訪問,另一個模塊用於公共訪問。

希望這將幫助你

2

the ZF2 documenation

模塊系統設計的靈活性,簡單性和可重用性的初衷。一個模塊可能包含任何東西:PHP代碼,包括MVC功能;庫代碼;查看腳本;和/或公共資產(如圖像,CSS和JavaScript)。可能性是無止境。

回答一般的MVC模式。

模塊是網站的一個獨立部分。任何你認爲可以細分的東西都應該是。一個模塊可能是一個頁面上出現的註冊表單(或多個)。它可能會處理表單的提交併將結果傳遞回來以顯示在頁面上(包括表單)。

通用模塊的另一個例子是菜單欄。組織頁面併爲菜單生成HTML的代碼都將構成一個模塊。實際頁面本身可能是另一個模塊,並且您的菜單模塊會與您的頁面模塊進行通信以獲取需要輸出的頁面列表。

任何數據庫表通常都是一個模塊。處理與該表交互的任何事都要經過該模塊。該模塊通常由其他模塊查詢信息或傳遞信息以保存在表格中或從表格中刪除。

您還可以擁有更大的模塊,例如CMS頁面。該模塊負責採取slu and並在數據庫中查找頁面。然後,它可能會要求其他幾個模塊用內容填充頁面,告訴他們需要輸出哪個頁面。然後,他們會關閉並獲取頁面的內容,生成頁面的特定部分並將其傳回原始模塊,然後將它們放在一起並返回完成的頁面HTML。

框架還將附帶各種模塊。我知道Laravel帶有一個用於註冊和認證用戶的模塊。它有一個使用對象關係映射方法訪問數據庫的模塊(Eloquent,這可能是幾個模塊拉到一起,我沒有檢查)。助手是模塊,例如一個表單生成器助手是一個模塊。

+0

+1 ZF2和其他類似的框架將允許您創建獨立的模塊來幫助共享,重用代碼和可維護性。 ZF2做[推薦模塊目錄結構](https://zf2.readthedocs.org/en/latest/modules/zend.module-manager.intro.html#introduction-to-the-module-system),但它完全是由您決定代碼的組織方式或您創建的模塊數量。 – AlexP