【问题标题】:Is it a good practice to extend a zf2 controller twice?将 zf2 控制器扩展两次是一个好习惯吗?
【发布时间】:2014-03-27 09:24:04
【问题描述】:

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

所以,我的问题是:在一个模块中扩展一个控制器(在我的情况下是来自 zfcuser 的 BaseUserController),然后在另一个模块中再扩展一次,这是一个好习惯吗?

感谢您的所有回复!

【问题讨论】:

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


    【解决方案1】:

    没关系,我不会说“好的做法”。

    过度使用继承可能会导致任何语言出现问题,有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() 一起使用,因此它们可能是开始了解它们是如何构建的好地方。

    【讨论】:

    • 谢谢亚历克斯!我只想扩展这个控制器两次!谢谢!
    猜你喜欢
    • 2014-03-09
    • 2014-12-22
    • 2020-02-06
    • 2011-09-04
    • 2014-08-27
    • 2015-05-08
    • 2017-06-14
    • 1970-01-01
    • 2016-06-09
    相关资源
    最近更新 更多