将zf2控制器扩展两次是一个好习惯吗?

时间:2014-03-27 09:24:05

标签: model-view-controller controller zend-framework2

我搜索了很多,以找到这个问题的答案,这里在stackoverflow和谷歌上。但是找不到任何东西......

所以,我的问题是:在模块中一次扩展一个控制器(在我的案例中是从zfcuser中调用BaseUserController)是一个好习惯,而在另一个模块中再次扩展一次?

感谢您的所有回复!

1 个答案:

答案 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(),因此他们可能是开始了解它们如何构建的好地方。