PHP5: Namespaces

21 07 2007

[PHP-DEV] Namespaces patch backport
De: “Timm Friebe” thekid@thekid.de
Para: “PHPdev” internals@lists.php.net
Data: Hoje 06:57:30Hi,
I’ve backported the namespaces patch to current CVS HEAD. Here it is:http://sitten-polizei.de/php/php5-namespaces.diff

I’ve tested it with the .phpt-tests Dmitry provided. Enjoy:)

– Timm


PHP Internals – PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

É certo que o patch não será aplicado ao na versão atual (5.2.3), mas quem sabe não se aplique em um eventual 5.3 ?

SE isso acontecesse, o que disse aqui certamente não teria o teor que teve.

Anúncios

Ações

Information

7 responses

30 07 2007
Rael

Não sei o quanto namespaces serão úteis num futuro, já que o próprio PHP ao invés de separar as classes e funções por namespaces/pacotes, carrega toda sua biblioteca durante a execução de um script.

31 07 2007
E Silva

A questão de namespaces (que está em discussão para se mudar o nome para “package”, por ter um funcionamento mais parecido com packages de java do que namespaces de c#) eu vejo como um grande ganho na organização de aplicações em php, principalmente em frameworks.

31 07 2007
Rael

Eu concordo que em códigos externos ao PHP vai melhorar a organização.
Mas o que eu disse foi em relação ao código bundle do PHP.
Mas eu estive pensando… atualmente eu já separo as classes por diretórios, etc… o que mudaria eu apenas colocando um namespace lá?

31 07 2007
E Silva

Entendo quando você diz quanto ao que faz parte do “core” do PHP. Neste caso vai ficar tudo em um “namespace global” (que na pratica não muda a forma atual hehehe)

Quanto a organização na forma atual (sem namespaces), é mesmo possível deixar bem organizado as localizações das classes. Eu por exemplo tenho bastante coisa organizada de forma semelhante a que é organizada em Java: “com/empresa/alguma/coisa/…” para framework, “empresa/appname/alguma/coisa” para itens de alguma aplicacação, etc. Pode não ser a melhor forma, mas tem sido muito eficiente pra mim.

O problema em varios casos são os nomes que as classes recebem, veja PHPUnit por exemplo:

“abstract class PHPUnit_Extensions_ExceptionTestCase extends PHPUnit_Framework_TestCase”
“abstract class PHPUnit_Extensions_OutputTestCase extends PHPUnit_Framework_TestCase”
“class PHPUnit_Extensions_RepeatedTest extends PHPUnit_Extensions_TestDecorator”
“class PHPUnit_Extensions_TestDecorator extends PHPUnit_Framework_Assert implements PHPUnit_Framework_Test, PHPUnit_Framework_SelfDescribing”

Sá pra citar alguns exemplos (há mais centenas no PEAR).
Acredito que ficaria bem interessante algo como:

import PHPUnit::Framework::*;

e utilizar somente um

new Test()

Enfim, deve ser somente questão de gosto, ou de usar uma IDE que complete código automaticamente (não o meu caso), etc.

3 08 2007
Rael

Você tem razão, E. Silva. Aliás, o que significa E? :D

É que embora eu separe por diretórios, como pacotes java, eu apenas uso a tag @package, não refletindo no nome das classes.

Mas se for seguir o pear style guide, realmente, fica um monstrinho. Mesmo com IDE que complete código!

1 10 2007
1 10 2007
E Silva

:D

Agora so preciso modificar meu framework pra usar isso, vai ficar lindo!!!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: