Usando namespaces com classes criadas a partir de uma variável
Então eu criei essas duas classes
//Quarter.php
namespace Resources;
class Quarter {
...
}
//Epoch.php
namespace Resources;
class Epoch {
public static function initFromType($value, $type) {
$class = "Quarter";
return new $class($value, $type);
}
}
Agora esta é uma versão muito simplificada de ambos, mas é suficiente para ilustrar a minha pergunta. As classes mostradas aqui não funcionarão, pois não encontrarão a classe Quarter. Para fazer isso funcionar eu poderia mudar a variável $ class para
$class = "\Resources\Quarter";
Então, minha pergunta é: Por que eu preciso usar o namespace aqui quando as duas classes já são membros do mesmo namespace. O namespace é necessário apenas quando coloco o nome da classe em uma variável, assim:
public static function initFromType($value, $type) {
return new Quarter($value, $type);
}
vai funcionar sem problemas. Por que isso e existe alguma armadilha potencial aqui que eu preciso evitar?