Creo se habia discutido un tema similar hace poco (y con Symfony tambien) no se si sea que Symfony esta mal diseñado o no sea tan extensible...
Pero la solucion mas concreta y correcta, ya que haciendolo de la forma que lo planteas es dificil llamar al abuelo. La solucion fue, crear un metodo nuevo en A que llame al metodo que sobrecargas en B, y desde C llamas a ese metodo:
Código PHP:
class A {
public function elMetodo() {
echo "soy el metodo especial de A";
}
public function aliasElMetodo() {
$this->elMetodo();
}
}
class B extends A {
public function elMetodo() {
echo "Yo soy el metodo sobrecargado en B";
parent::elMetodo();
}
}
class C extends B {
public function elMetodo() {
"Yo soy el metodo sobrecargado en C, pero necesito hablarle a A";
$this->aliasElMetodo();
}
}
$c = new C();
$c->elMetodo();
Saludos.