NameSpaces

8 views
Skip to first unread message

NF RIACowboy

unread,
Mar 12, 2011, 5:51:50 PM3/12/11
to Portugal PHPUG
Tenho estado a ler documentação e tutorials sobre a utilização de
namespaces, mas não consigo ter certeza sobre a necessidade da
utilização do require ou do import.

A minha duvida existe porque sempre pensei que com a implementação dos
namespaces o que faz sentido é que não seja mais necessario fazer
require's ou import's de outros ficheiros.

Abraços.

David Ramalho

unread,
Mar 12, 2011, 6:34:50 PM3/12/11
to portuga...@googlegroups.com
Greetings

2011/3/12 NF RIACowboy <nf.ria...@gmail.com>
(snip snip)


A minha duvida existe porque sempre pensei que com a implementação dos
namespaces o que faz sentido é que não seja mais necessario fazer
require's ou import's de outros ficheiros.

Com os namespaces + autoload (__autoload ou spl ) o que ganhas é uma nova estratégia (bem mais limpinha) para fazeres autoload, e honestamente a puderes recomendo vivamente . 

O que tenho usado é um autoloader meu que meto na stack do spl e que 

1) traduz linearmente (chama-lhe convenção ;) ) o "Coisa\Coiso\Coisinho\MegaClass" num include para (é linux, por isso a barra é '/') : <include_path>Coisa/Coiso/Coisinho/MegaClass.php

2) permite definir paths alternativos para namespaces especificos, é um nice to have, nada de emocionante

mais coisas .. hummm ... usa o "use" , é bom para refactoring futuro , usa o autoloader (não tens trabalho e nunca mais na vida tens que usar require_once ou andar a ter super mega cuidados para não importares a mesma coisa duas vezes), usa o spl pq te deixa fazer stack de autoloaders, usa php 5.3, nunca mais olhes para trás e sê feliz :)

That's it ;)
David Ramalho

Paulo Azevedo

unread,
Mar 13, 2011, 5:38:05 AM3/13/11
to portuga...@googlegroups.com
Bom dia, caso te estejas a iniciar no PHP 5.3 tenho uns artigos que te poderão dar uma ajuda no meu blog:

--
Recebeu esta mensagem porque está inscrito no grupo "Portugal PHPUG" dos Grupos do Google.
Para publicar uma mensagem neste grupo, envie um e-mail para portuga...@googlegroups.com.
Para anular a inscrição neste grupo, envie um e-mail para portugal-phpu...@googlegroups.com.
Para ver mais opções, visite este grupo em http://groups.google.com/group/portugal-phpug?hl=pt-PT.



--
-Paulo

Nuno Fernandes

unread,
Mar 15, 2011, 9:13:46 PM3/15/11
to portuga...@googlegroups.com, Paulo Azevedo
Obrigado Paulo, aquele Calculador de Resistências provocou-me cá uma nostalgia... muito bom :)

David, a tua dica mostrou-me a luz ao fundo do túnel, mas como eu sou um complicado como tudo tenho a porcaria de uma estrutura que por um teste que fiz até me deu arrepios.. passo a explicar:

a minha estrutura onde tenho as classes é:

pasta1/
pasta2/
pasta3
pasta4
pasta5


as diversas classes estão espalhadas pelas pastas3.. até 5


depois tenho outra estrutura semelhante

pastola1/
pastola2/
pastola3
pastola4
pastola5

com masis classes de pastola3.. até 5

para efeitos de testes, criei uma pasta chamada teste e um index.php lá dentro.

Ora a minha grande dor de cabeça foi conseguir referenciar do index.php da pasta teste uma classe que estava no pastola3.

só funcionou quando copiei o ficheiro index.php para a raiz.

O que me leva a pensar que o spl_autoload só vai procurar de onde é chamado para cima.

Se isso é verdade até solto uma lagrimacita, pois tenho classes nas pastolas que usam classes das pastas, e das pastas para pastas e uma grande confusão...

Sugestões?

Obrigado malta.


2011/3/13 Paulo Azevedo <hal...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages