Мне было интересно, можно ли определить текущее пространство имен при вызове функции. У меня есть это объявление функции:
<?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);
}
?>
И в другом файле:
<?php
namespace Foo;
function bar () {
}
?>
И давайте скажем, у меня это как мой процедурный код:
<?php
namespace Foo;
Site\Action\add('hookname', 'bar');
?>
Было бы разумно предположить, что Bar
в этом случае предназначалось для разрешения как Foo \ bar
, поскольку это было пространство имен, которое было вызывается из.
Это было долгое объяснение, так что еще раз, можно ли определить активное пространство имен, из которого был вызван Site \ Action \ add ()
?
Заранее спасибо.