我有一个我认为应该工作的东西,但事实并非如此。
我有几个Controller _ ##类,它们都来自Controller_Core。每个Controller _ ## - 类都有一个公共函数Save()。现在我想我要执行一些其他的一般性检查(每个$ _POST-var的addslashes)并且想如果我将一个公共函数Save()添加到Controller_Core,它将默认执行,因为## - 类从它扩展。但事实并非如此。
我的问题;我想要实现的是可能的吗?或者我误以为这会有用吗?
答案 0 :(得分:5)
在方法的子类版本中调用parent::Save()
。
答案 1 :(得分:1)
或者您可以应用重构来提取核心类的常见行为:
class Controller_Core {
public function save() {
if ( ! $this->_validateInfo() ) {
return false;
}
return $this->_doSave();
}
protected function _validateInput() {
//-- do stuff
return true;
}
protected function _doSave() {
//-- do stuff
return true;
}
}
您可以在子类中编写特定代码,如:
class Controller_Extended extends Controller_Core {
protected function _doSave() {
//-- a new return
return true;
}
}