强制在symfony操作中调用parent :: preExecute()

时间:2012-10-17 07:37:14

标签: php symfony-1.4 overloading method-call enforcement

我有类似的结构:

家长班

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中是否还有其他方法我还不知道(另一种不会超载的方法)?

需要调用父方法,否则功能会被破坏!

3 个答案:

答案 0 :(得分:1)

没有办法强制执行它。子类的唯一责任是决定是否调用父方法。

答案 1 :(得分:1)

这正是继承应该做的事情;孩子专注于一种方法,同时保留前后条件。这使得可以用父类替换父类。

也许您可以在父类中声明在子类中实现的空挂钩,并将final添加到preExecute()声明中以防止意外覆盖。

答案 2 :(得分:0)

将它放在抽象类__constructor()