¿Cómo llamar al método abuelo sin obtener un error E_STRICT?

A veces necesito ejecutar el método de abuelo (es decir, omitir el método principal), sé que esto es el olor del código, pero a veces no puedo cambiar las otras clases (marcos, bibliotecas, etc.).

En PHP podemos hacer eso con algo como:

call_user_func(array(get_parent_class(get_parent_class($childObject)), 'grandParentMethod'));

El problema es que si tiene habilitados los errores E_STRICT obtendrá un error como:

Normas estrictas: el método no estático GrandParent :: grandParentMethod () no debe llamarse estáticamente en ...

He encontrado una sola solución para esto (sin eliminar E_STRICT), y solo está agregando el@ para suprimir el error.

Pero eso es realmente feo, ¿alguien sabe una mejor solución?

Gracias ! PD: no puedo crear una instancia de un nuevo objeto como:

$grandparent = get_parent_class(get_parent_class($son));
$gp= new $grandparent;
$gp->grandParentMethod

porque necesito llamar al método de mi abuelo en el contexto de $ son.

Respuestas a la pregunta(3)

Su respuesta a la pregunta