Obter espaço de nomes de classe PHP dinamicamente
Como posso recuperar um namespace de classe automaticamente?
A magia var__NAMESPACE__
não é confiável, pois nas subclasses ele não está definido corretamente.
Exemplo:
class Foo\bar\A
->__NAMESPACE__
=== Foo \ bar
class Ping\pong\B extends Foo\bar\A
->__NAMESPACE__
=== Foo \ bar (deve ser Ping \ pong)
ps: Eu notei o mesmo comportamento errado usando__CLASS__
, mas resolvi usarget_called_class()
... há algo comoget_called_class_namespace()
? Como posso implementar essa função?
ATUALIZAR:
Eu acho que a solução está na minha própria pergunta, desde que eu percebiget_called_class()
retorna o nome completo da classe e, portanto, posso extrair o namespace dele: D ... De qualquer forma, se houver uma abordagem mais eficiente, informe-me;)