我搜索了很多找到這個問題的答案,這裏在stackoverflow和谷歌。但沒能找到任何東西...延長zf2控制器兩次是否是一個好習慣?
所以,我的問題是:這是一個很好的做法,擴展一個控制器(在我的情況下BaseUserController從zfcuser)一旦在一個模塊,並再次在另一個模塊?
感謝您的回覆!
我搜索了很多找到這個問題的答案,這裏在stackoverflow和谷歌。但沒能找到任何東西...延長zf2控制器兩次是否是一個好習慣?
所以,我的問題是:這是一個很好的做法,擴展一個控制器(在我的情況下BaseUserController從zfcuser)一旦在一個模塊,並再次在另一個模塊?
感謝您的回覆!
這很好,我不會去「好的做法」。
過度使用繼承會導致任何語言的問題,並且有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()
,所以他們可能是開始看他們是如何建立的好地方。
謝謝亞歷克斯!我只想擴展這個控制器兩次!謝謝! –