2010-02-25 152 views
0

我使用Zend Framework開發了web應用程序。現在,我有一個巨大的圖書館,它包含了每一件事情,由一些Web應用程序使用。我正在考慮使用「模塊」的概念對其進行重組。使用Zend Framework,模塊和包裝之間有什麼區別

但我不確定模塊和包裝之間的區別。

我的理解是:

  • 一個模塊包含一個Web應用程序的一部分(頁,模式......)
  • 一包是一組類的庫

我看到它嗎?以及如何知道我的課程應該去哪裏(模塊或庫的模型)?

因爲例如,我有一些類來做翻譯。我有「模型」類,代表一種語言,一種文本及其傳播......而且我有一種「API」類,它只是將字符串翻譯成語言。我會說,我需要一個模型類和Web界面來編輯traductions,並且API類將在庫中?是對的嗎 ?有兩種類,一種是模塊,另一種是圖書館,這並不奇怪。

我想這是一個關於API,圖書館和應用程序架構的懸而未決的問題。

回答

3

模塊,在ZF意義上,基混凝土,常常獨立位置,應用部分:

模塊允許開發者組一組相關的控制器到一個邏輯上組織組。 modules目錄下的結構將類似於應用程序目錄下的結構。 [...]爲模塊目錄結構應該模仿該應用/目錄的在推薦項目結構

在另一方面的包裝處於代碼庫概念性屬於一起的一組類。例如,ActionHelpers和ControllerPlugins概念上屬於Zend_Controller包。所有可用的Validator類都屬於包Zend_Validate

當使用PHPDocumentor時,你可以註釋你的代碼屬於包。如果您查看ZF的API文檔,您將看到這個分組有效。嘗試找到Zend_Validate_Alpha類。

1

軟件包是名稱空間區域,以便具有相似名稱的符號不會相互衝突。例如,符號& main :: first與標記& List :: Util :: first不同。包是sysbols的名稱前綴。

模塊是代碼文件或字節碼樹。一個模塊可以在磁盤上預編譯(.pmc),未編譯(.pm);或者作爲一個單元預先加載到內存中 - 假設沒有autosplit。

總結:軟件包是關於命名空間的,模塊是關於文件的。它們是不同的東西,比如蘋果和盒子 - 直到你開始將一種蘋果放入一種盒子的時候,人們開始認爲蘋果和盒子是相關的。他們是!但仍然是一種水果,另一種是一種容器。

+0

這不是* ZF術語中的*模塊*。 – Gordon 2010-02-25 12:52:42

+0

是的戈登,你是對的我正在談論ZF模塊 – 2010-02-25 12:59:16

0

在我看來很簡單:
模塊是像智者(有針對性的目標模板庫) 。
包是2個或更多的模塊,可以相互配合使用以提供更完整的解決方案。
再次我的簡單觀點。

相關問題