我有类似的结构:
家长班
abstract class parentActions extends sfActions
{
// overloaded from sfActions
public function preExecute()
{
// do some stuff before every action
}
}
儿童课
class someActions extends parentActions
{
public function preExecute()
{
// do some more stuff
parent::preExecute();
}
}
现在我的问题是:如何在覆盖它的子方法中强制调用parent::preExecute()
?
在symfony中是否还有其他方法我还不知道(另一种不会超载的方法)?
需要调用父方法,否则功能会被破坏!
答案 0 :(得分:1)
没有办法强制执行它。子类的唯一责任是决定是否调用父方法。
答案 1 :(得分:1)
这正是继承应该做的事情;孩子专注于一种方法,同时保留前后条件。这使得可以用父类替换父类。
也许您可以在父类中声明在子类中实现的空挂钩,并将final
添加到preExecute()
声明中以防止意外覆盖。
答案 2 :(得分:0)
将它放在抽象类__constructor()