2015-04-16 152 views
2

在過去的幾周裏,我看到了一些Zend Framework 2項目。在比較它們時,我注意到它們基本上都遵循相同的結構:Zend Framework 2應用程序結構

一個名爲application的模塊處理網站的所有操作 - 應用程序不同部分的「前端邏輯」(如新聞帖子,用戶配置文件,電子郵件設置等)。

對於應用程序的每個部分,至少有一個模塊,但只包含「後端邏輯」(添加新聞,刪除用戶等)。

我認爲他們都建立在Zend Framework 2骨架應用程序之上。

這是一個最佳實踐,還是有任何其他常見或推薦的模式,如何構建一個應用程序?爲什麼我不能寫一個包含後端&前端部分的新聞發佈模塊?

此外,我應該如何模塊化編寫模塊 - 我的意思是可以將簡單的功能擴展到多個模塊中,但這樣做可能並不總是明智的。有沒有任何指標?

回答

0

這只是開發人員的個人喜好。骨架應用程序只有一個名爲「應用程序」的模塊開始,這就是爲什麼你可能會看到很多。這不是必需的 - 我通常將它重命名爲更適合的東西。

不管您希望如何組織模塊。您當然可以創建一個具有前端和後端功能的新聞模塊 - 以任何對您的應用程序有意義的方式來構建它們。

當考慮「模塊化」如何製作東西時,請考慮是否可能要在未來的其他項目中重用該功能。如果是,那麼把它變成它自己的模塊可能是有道理的。

3

這是一個最佳實踐,或者是否有任何其他常見或推薦的 模式關於如何構建應用程序?

答案是否定的,存在對Zend框架2個應用程序,違背ZF1沒有predifined結構。您可以自由定義適合您需求的結構。這是由於Zend\Loader\StandardAutoloader建立了類的路徑,該類通過將該名稱空間的基本目錄路徑預先添加到類名稱中,然後包含該類。所以你的應用程序文件夾目錄的結構可以按你的需要組織。

此框架應用程序使用的標準結構是,只是由ZF2團隊提供的一個建議。如果您認爲您的需求最適合於不同的結構,那麼您不必遵循它。

zf2application 
├── config 
│ ├── application.config.php 
│ └── autoload 
│  ├── global.php 
│  └── local.php.dist 
├── data 
│  └── cache 
├── init_autoloader.php 
├── module 
│  └── Application 
├── public 
│  ├── css 
│  ├── images 
│  ├── index.php 
│  └── js 
└── vendor 
     ├── ZF2 
     └──init_autoloader.php 

通過了Zend小組定義和建議報告該模塊的結構尊重PSR0標準。您可以添加不同結構的模塊,這些模塊的結構與推薦的不同,但除了PSR0標準外,還必須遵守一些規則,其中包括模塊根部的module.php文件。

您可以在Rob Allen的文章Thoughts on module directory structure中閱讀更多內容,它解釋瞭如何在尊重推薦標準的同時更改模塊目錄結構。

另外,我應該怎樣模塊化寫模塊?

模塊是重新組合應用程序的一個或多個功能(前端/後端/設計)的組件。使用模塊的主要優點是它們將代碼分開,並可以在許多其他應用程序中重用。記住這個想法,你就能知道你什麼時候應該創建一個模塊,什麼時候不應該。

您也可以參考how to write better Zend Framework 2 modules上的優秀帖子。