我搜索了很多,以找到这个问题的答案,这里在stackoverflow和谷歌上。但是找不到任何东西......
所以,我的问题是:在模块中一次扩展一个控制器(在我的案例中是从zfcuser中调用BaseUserController)是一个好习惯,而在另一个模块中再次扩展一次?
感谢您的所有回复!
答案 0 :(得分:1)
没关系,我不会像#34;良好的做法"。
过度使用继承可能会导致您使用任何语言出现问题,并且numerous of post around explaining the issues and possible solutions。
从ZF2的角度来看,你会遇到Module B
取决于Module A
可能存在问题的问题 - 但这实际上取决于你的应用程序/模块设计。
还有其他选择:
聚合 - 通过获取其他类并将它们组合到一个新类中来创建新功能。将一个公共接口附加到这个新类,以便与其他代码互操作。
使用PHP traits - 如果您有幸使用更新版本的(PHP 5.4+),您可以在需要它的每个控制器类中重复使用它们。
自定义Controller Plugin - ZF2有一个"可插拔的"控制器中的API,意味着您可以编写自包含的辅助类,然后可以在任何控制器中使用 - 无需扩展。您几乎肯定已经将这些用于$this->redirect()
或$this->params()
,因此他们可能是开始了解它们如何构建的好地方。