Português Português English English

Namespaces no PHP 6

Navegando - e procurando coisas novas sobre PHP - achei um post interessante no blog PHP 10.0. É um FAQ sobre como vai funcionar namespaces no PHP 6. Tudo bem, não é novidade que o PHP terá namespace, mas o legal é assistir como ele está sendo construído. Achei o texto interessante e resolvi traduzí-lo.

Para acessar o texto original clique aqui. Veja também outro post sobre namespace e o design de como poderá ser o namespace em PHP 6.

Por que é necessário namespaces em PHP?
Porque nomes grandes como PEAR_Form_Loader_Validate_Table_Element_Validator_Exception são cansativos.

Qual é o principal objetivo do namespace?
Resolver o problema acima citado.

O que significa “namespace X::Y::Z”?
Todas as classes e funções são prefixadas com X::Y::Z

O que significa “import X::Y::Z as Foo”?
Um apelido para um namespace. Toda vez que uma classe ou função com o prefixo Foo for chamado, ele será traduzido para X::Y::Z.

O que significa “import X::Y::Z”?
Significa “import X::Y::Z as Z”, como no item anterior.

O que significa “import Foo”?
Nada.

Qual é o escopo do namespace e import?
Arquivo atual.

Um mesmo namespace pode ser utilizado em vários arquivos?
Sim.

Existe relação entre os namespaces X::Y::Z e X::Y?
Só na cabeça do programador.

Como faço para importar todas as classes de um namespace X::Y::Z para o escopo global?
Não é possível, isso nos traria o problema global da poluição espacial.
Entretanto você pode importar X::Y::Z e então prefixar sua classe com Z::.

Isso não faz com que haja nomes grandes?
Não maiores que três elementos: Namespace::Classe::Elemento.

Por que isso não é implementado como em <coloque sua linguagem favorita aqui>?
Porque PHP não é <coloque sua linguagem favorita aqui>.

Posted in Development, PHP

Leave a Comment

Please be polite and on topic. Your e-mail will never be published.

BrasilMato GrossoRondôniaDistrito Federal