Acessar o método substituído do pai do contexto pai em PHP

Eu tenho uma classe PHP de desenho chamadaClasse A que é estendido por muitas outras classes de desenho,Classe B por exemplo.

Eu preciso das classes herdadas para disparar suas classes pai 'Desenhar() método. No entanto, na minha situação particular, não quero chamar esse método diretamente (por exemplo:parent::Draw()). Eu gostaria de uma terceira função (por exemplo:parent::InvokeDraw()) para chamar meu método de desenho de dentro do contexto do pai.

Aqui está um código para ilustrar:

class ClassA
{
    function Draw()
    {

        /* Drawing code ... */

    }

    function InvokeDraw()
    {
        $this->Draw();
    }
}

class ClassB extends ClassA
{
    function Draw()
    {
        parent::InvokeDraw();

        /* Drawing code ... */

    }
}

O problema que estou enfrentando é queInvokeDraw () não vai ligar para o paiDesenhar() método, mas sim a própria classe estendidaDesenhar() método, causando assim um loop infinito.

Embora o problema seja bastante lógico, estou tendo dificuldade em descobrir uma solução alternativa para isso. Como realizar essa tarefa?

Efeito desejado

Problema de loop infinito

questionAnswers(4)

yourAnswerToTheQuestion