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