2
respostas

Duvida sobre namespaces

o namespace seria um tipo de identificador de arquivo?não entendi muito bem o uso dela,e porque quando usamos funções nativas do PHP dentro de um arquivo com uma namespace exemplo o pdo ou ate mesmo o DB como o que ocorreu no video 2 do curso essas funções dão erro e precisamo usar o USE?

2 respostas

Até o PHP 5.2 não era possível ter duas classes com o mesmo nome, sendo necessário colocar caracteres no final da classe para especificar as mesmas características.

Exemplo:

class Form {}
 class Form1 {}
 class Form2 {}

No PHP 5.3 surge o conceito de Namespaces ou "espaços de nome". Namespace nada mais é do que uma separação lógica, ou seja, um encapsulamento ao redor das classes.

Um Namespace cria um isolamento de nomes, dessa maneira é possível ter a primeira class Form no Namespace \App\Model\Form, e a segunda class Form no namespace \Lib\Components\Form.

Namespace funciona como uma separação de diretórios, assim é possível existirem classes com o mesmo nome em Namespaces diferentes, como podem existir arquivos com o mesmo nome, mas em diretórios diferentes.

Vou aproveitar o tópico para não duplicar, porque eu realmente estou com um ponto de interrogação.

Os namespace eles funcionam só para as classes que eu crio ou elas tem valor para as model e controllers?

Por exemplo um controller chamado "Clientes" que sera executado no meu painel adminstrativo para gerenciar os mesmos e outro "Clientes" que será para o site?