2010-04-16 70 views
1

如何處理Zend Framework中模塊之間的依賴關係以創建可重用的嵌入式模塊?Zend Framework應用程序:模塊依賴關係

E.g.我有時事通訊模塊,它允許用戶訂閱,提供電子郵件 地址。下一步,我計劃添加博客模塊,它允許通過電子郵件訂閱帖子(它明顯地重複了通訊的一些功能,但電子郵件地址存儲在用戶模型中)。 下一個是論壇模塊,具有相同的訂閱發佈功能。

但我想有能力獨立使用這些模塊,即每個人都可以獨立使用這些模塊,即 應用程序僅包含通訊,包含博客的時事通訊,可同時包含兩個或三個模塊。

這很常見,例如與搜索功能相同的故事。我想要 搜索模塊,如果有可用的 ,可以選擇搜索所有數據,博客數據或論壇數據。

有沒有這樣的設計模式?
我是否需要添加一些moduleExists($moduleMame),或者提供一些接口或 抽象類,一些基本控制器模式,對於每個模塊類似?

回答

1

我可能會使用某種依賴注入容器模式在應用程序初始化時向容器註冊模塊。然後,您可以加載模型並確保它們具有所有適當的依賴關係。

對於訂閱功能,我會在更抽象的庫中創建公共訂閱模型,每個模塊都可以在需要時通過通用API使用該模型。

在搜索功能知道要搜索哪些其他模塊的情況下:當您通過容器加載搜索模型時,容器可以通知要搜索的已註冊模塊的搜索模型。

將註冊模塊註冊並存儲在註冊表中可以通過常見模塊(如搜索)訪問,但使用DI容器證明是解決許多類似問題的良好模式可能更容易。