2014-03-27 112 views
0

我搜索了很多找到這個問題的答案,這裏在stackoverflow和谷歌。但沒能找到任何東西...延長zf2控制器兩次是否是一個好習慣?

所以,我的問題是:這是一個很好的做法,擴展一個控制器(在我的情況下BaseUserController從zfcuser)一旦在一個模塊,並再次在另一個模塊?

感謝您的回覆!

回答

1

這很好,我不會去「好的做法」。

過度使用繼承會導致任何語言的問題,並且有numerous of post around explaining the issues and possible solutions

從ZF2的角度來看,您將遇到Module B取決於Module A這可能是一個問題 - 但是這真的取決於您的應用程序/模塊設計。

還有其他備選方案:

  • 聚合 - 採取其他類並將它們組合成一個新的類來創建新的功能。將一個通用接口添加到這個新類中,以實現與其他代碼的互操作性。

  • 使用PHP traits - 如果您足夠幸運地使用更新版本的(PHP 5.4+),您可以簡單地在需要它的每個控制器類中重複使用它們。

  • A自定義Controller Plugin - ZF2在控制器中有一個「可插入」的API,這意味着您可以編寫自包含的幫助類,然後可以在任何控制器中使用 - 無需擴展。你幾乎可以肯定地使用這些已經與$this->redirect()$this->params(),所以他們可能是開始看他們是如何建立的好地方。

+0

謝謝亞歷克斯!我只想擴展這個控制器兩次!謝謝! –

相關問題