2
respostas

include_once e namespace

Boa tarde! Porque eu preciso de include_once e namespace? Eu entendi que o include_once "autoload.php" ia sempre ser acionado quando uma classe fosse instanciada, daí o caminhoAbsoluto da classe ia ser criado, mas mesmo assim para as classes salvas em arquivos diferentes da raiz eu tenho que criar um namespace e depois um use aonde fosse chamados. Porque eu preciso dos dois?

2 respostas

Oi Leonardo, tudo bom?

A ideia de usar namespaces é pra garantir uma organização maior do código.

Há uns 2 anos eu escrevi um post no blog da alura:

https://www.alura.com.br/artigos/organizando-seu-codigo-com-namespace

sobre namespace e o porque usamos eles com um exemplo prático =)

Qualquer duvida é só falar.

Abraço

Olá Leonardo!

É justamente por isso, se você estiver utilizando apenas arquivos que estão localizados na raiz do projeto, não existe a necessidade de utilizar o namespace, até porque o namespace é o mesmo do seu arquivo que está chamando essa outra classe, assim o namespace significa o caminho necessário para chegar até o arquivo desejado. Porém para as classes que estão em diretórios diferentes da raiz do projeto é necessário usar o namespace nas mesmas (no caso da aula, nas classes Diretor e Designer) e usar o use no arquivo index.php para poder instanciar essas classes. Isso é necessário para a resolução dos caminhos, pois o caminho de um determinado arquivo terá duas barras invertidas \, e resultará em conflitos, então o autoload cuida disso e deixar todos os caminhos com apenas uma barra obliqua /.

Espero que tenha ajudado!