80053

关于构造函数内的功能需要扩展的问题

回帖
回帖数 4
阅读数 1973
发表时间 2011-03-21 10:47:14
近上级安排修改禅道系统,为以后升级方便,尽量采用扩展的方式,可是发现如果功能是写在构造函数内就不能扩展(如果可以请告知方法 谢谢),例如module/project/control.php的构造函数内读取projects的功能,我想修改为有筛选功能的,不得不改了原文件,建议构造函数内不要写具体功能,调用一个外部方法比较好。

我用的是1.5版。
4个回复
🍟
春哥沙发
可以扩展的,呵呵。
在你的扩展文件里面,再重新定义__construct方法就好了。:)
2011-03-21 11:08:54 王春生 回帖
我现在是想修改__construct内的功能,这些功能是被这个模块的所有操作公用的,我不想扩展contro的每个方法,就只能修改原__construct,还有就是这个用公用方法也不行。
control的扩展为什么不能采用model的方式,存在extmodel就实例化extmodel,这样就能解决我的问题了。
2011-03-22 16:47:05 Jun 回帖
你可以通过扩展project的model里面的getPairs()方法吧。

control的扩展,可以是继承的:
可以直接继承自control类,也可以继承自misc类。如果是后者,则需要这么写:

include '../../control.php'; misc的contro类文件需要手工包含。
class myMisc extends misc
{
public function getsid()
{
}
}

你可以考虑自己定义一个control.php,放在扩展的目录下面,作为基类,然后其他扩展的方法,都来包含这个文件,然后继承自你自己定义的类,这样就可以实现代码的重用了。:)。原来的control就完全被绕开了。
2011-03-23 13:14:01 王春生 回帖
好的 谢谢 试验过再过来反馈。
2011-03-24 09:11:55 Jun 回帖
联系我们
联系人
刘斌/高级客户经理
电话(微信)
17685869372
QQ号码
526288068
联系邮箱
liubin@chandao.com
相关帖子
返回顶部
客服头像
刘斌
高级客户经理
客服微信
17685869372
526288068
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。问题反馈反馈点击这里,让我们聆听您的建议与反馈。