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.