【发布时间】:2014-10-10 19:47:02
【问题描述】:
我想在我在 yii 上的几个项目中使用第三方模块。 例如模块 cmets https://github.com/segoddnja/Comments-module
通常需要对特定项目的模块进行一些更改。 如果我需要使用自定义视图,我只需将它们复制到主题中并进行修改。 如何覆盖位于模块中的 php 类中的方法? 例如我想修改模型类中的方法。我该怎么做?
提前致谢
【问题讨论】:
-
我不明白你的问题,只是在应用程序模块目录中的模块目录中找到模型文件,覆盖你想要的方法并随意
-
你能给我一个代码示例,它允许我从这个模块模型扩展 github.com/segoddnja/Comments-module/blob/master/models/… 并覆盖一些方法。我应该把文件放在哪里,这将扩展该模型?
-
@Mikola laviro 如果您的模块已经加载到您的主应用程序上,您可以使用继承覆盖模型,例如将您的自定义模型放在 protected/components/mymodel.php 上:class mymodel extends ModuleModel {. ...,}
-
亚历杭德罗,你说得对,我能做到。但是我如何告诉模块中的所有文件,它们应该使用 mymodel 而不是 ModuleModel?例如在 mdule 控制器中将是下一个代码“new Modulemodel”。那么mymodel就不会用了吗?
-
@Mikola laviro 在你代码的其他部分你应该使用“new mymodel”而不是“new ModuleModel”