Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

namespace

Eu não peguei direito a funcionalidade de namespace. É apenas um escopo que delimita o que eu farei na classe? Quando usei namespace 'Alura' e, depois, tentei instanciar o objeto usuario, deu BUG --'

2 respostas
solução!

Uma outra maneira de enteder os namespaces é comparar ele com álbuns de música.

Imagina que você fala o seguinte pro Spotify:

"ô spotify, toca a música que chama "One" para mim!"

Só que tem um problema: o Ed Sheeran tem uma música que chama One, e o Metallica também tem uma música que chama One.

E agora? como que o Spotify vai saber qual que ele tem que tocar?

Para não ter esse tipo de conflito, a gente poderia falar para ele o seguinte:

"Toca a música One do Ed Sheeran"

ou se a gente fizesse um código fictício em PHP, poderiamos falar para ele:

ao invés de importar a música One, pois tem muitas com esse nome e vai dar conflito:

use One;

a gente poderia falar algo como:

use EdSheeran\One;

É um código fictício para tentar ilustrar a ideia do namespace.

O objetivo principal do namespace é a gente evitar a colisão de nomes entre classes, no curso, a gente criou um namespace chamado \App\Alura\ e criamos algumas classes como a Contato lá dentro.

Isso é uma boa prática porque imagina que a gente fosse utilizar alguma dependência que a gente baixou pela internet ou pelo Composer, e nisso tinha uma classe que chamava Contato também, ia dar conflito! porque o PHP não ia conseguir saber qual das duas classes ele tem que usar.

Um outro jeito de pensar no que é o namespace é como se ele fosse um sobrenome para a classe, para o PHP poder diferenciar ele quando tem classes com o mesmo nome, então para a gente utilizar a classe teríamos que usar o nome completo dela, namespace + classe. ^^

Espero ter ajudado, se não tiver ficado claro pra você me avisa porque namespace é uma coisa importante no PHP, você vai usar isso muito mais para frente, principalmente quando for utilizar frameworks e códigos de outras pessoas, tô aqui pra te ajudar a entender :)

Que explicação!! Muito Obrigado!