Na aula os namespaces estavam acompanhando a estrutura das pasta (Modelo e Modelo\Conta). O namespace precisar referenciar uma pasta ou ele é apenas um nome para organizar de uma forma mais abstrata?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Na aula os namespaces estavam acompanhando a estrutura das pasta (Modelo e Modelo\Conta). O namespace precisar referenciar uma pasta ou ele é apenas um nome para organizar de uma forma mais abstrata?
Bom, depende.
Por exemplo, o instrutor usou a seguinte função de autoload:
spl_autoload_register(function (string $nomeCompletoDaClasse) {
$caminhoArquivo = str_replace('Alura\\Banco', 'src', $nomeCompletoDaClasse);
$caminhoArquivo = str_replace('\\', DIRECTORY_SEPARATOR, $caminhoArquivo);
$caminhoArquivo .= '.php';
if (file_exists($caminhoArquivo)) {
require_once $caminhoArquivo;
}
});Nessa função foi definida que o namespace base que é o 'Alura\Banco' está relacionada ao diretório 'src'. Isso foi feito usando o str_replace nesse caso. Mas todos os sub-namespaces devem ter exatamente o mesmo nome dos diretórios para um funcionamento correto.
Mas da mesma forma que foi definido que o namespace 'Alura\Banco' está apontada para o diretório 'src', você também pode fazer com que outros namespaces apontem para diretórios de nomes diferentes, dependendo da sua necessidade.
Gabriel, nós usamos uma simplificação da sugestão conhecida como PSR-4 (como foi comentado no curso).
Dá uma olhada nela aqui: https://cursos.alura.com.br/course/php-oo-heranca-polimorfirmo-interfaces/task/67551