Determine a qué espacio de nombres se llamó la función en

Me preguntaba si era posible determinar cuál era el espacio de nombres actual cuando se llamaba a la función. Tengo esta declaración de función:

<?php
namespace Site\Action;
function add ($hook, $function) {
    /**
     * determine the namespace this was called from because
     * __NAMESPACE__ is "site\action" :(
     */
     if (is_callable($function))
         call_user_func($function);
}
?>

Y en otro archivo:

<?php
namespace Foo;
function bar () {
}
?>

Y digamos que tengo esto como mi código de procedimiento:

<?php
namespace Foo;
Site\Action\add('hookname', 'bar');
?>

Tendría sentido suponer queBar en este caso estaba destinado a resolverse comoFoo\bar ya que ese era el espacio de nombres desde el que se llamó.

Esa fue una explicación larga, así que de nuevo, ¿es posible determinar el espacio de nombres activo dondeSite\Action\add() fue llamado desde?

Gracias por adelantado

Respuestas a la pregunta(6)

Su respuesta a la pregunta