Como chamo métodos pai PHP de dentro de um método herdado?

No PHP, estou tentando fazer referência a um método definido na classe pai de um objeto, de um método herdado da classe pai do objeto. Aqui está o código:

class base_class {
  function do_something() {
    print "base_class::do_something()\n";
  }
  function inherit_this() {
    parent::do_something();
  }
}
class middle_class extends base_class {
  function do_something() {
    print "middle_class::do_something()\n";
  }
}
class top_class extends middle_class {
  function do_something() {
    print "top_class::do_something()\n";
    $this->inherit_this();
  }
}

$obj = new top_class;
$obj->do_something();

O problema é que parent :: do_something () em herdit_this () tenta encontrar a classe pai de base_class, não o pai da classe real do objeto, e o exemplo acima gera um erro. Existe algo que eu possa escrever em vez de parent :: do_something () que chamaria middle_class :: do_something () e que ainda funcionaria mesmo em classes que estendem (digamos) top_class?

questionAnswers(4)

yourAnswerToTheQuestion