por Alan Knowles alan_k@php.net (traduzido por Antônio Carlos Venâncio Júnior - floripa arroba php.net)
Considerando as férias de verão (Europa/EUA), o PEAR teve mais uma semana extremamente cheia com 10 novos lançamentos estáveis, 4 lançamentos beta e discussões sobre o PEAR no Gentoo, novas categorias, um novo manual e um ícone "Powered by PEAR".
Novos Lançamentos
Estável
- File_SearchReplace para encontrar e substituir dados dentro de arquivos.
- HTTP_Request para postar e receber dados de servidores web.
- HTML_Table para montar tabelas em HTML.
- HTML_TreeMenu para criar arvores em HTML para navegação.
- Log - um framework para logar para arquivos, syslog, SQL, etc.
- Mail - a classe para enviar e-mails.
- Mail_Mime para manipular mensagens MIME.
- Net_POP3 para acessar caixas de correio POP3.
- Net_Sieve para conversar com servidores "timsieved".
- Net_URL para analisar URLs.
- Pager para fazer paginação.
Beta
- bcompiler - um compilador de PHP bytecode (no momento apenas para classes).
- HTML_Javascript - ferramentas para trabalhar com Javascript.
- PEAR_Frontend_Gtk - a interface de desktop para o instalador do PEAR (inicializado com pear -G e requer o PHP-Gtk).
- PHPDoc - ferramenta de documentação via comentários.
Tráfego na lista PEAR-DEV
PEAR e Gentoo
Gentoo adicionou alguns pacotes do PEAR ao seu portage tree (o sistema de instalação de pacotes). A lista de pacotes disponíveis podem ser vistas em Gentoo dev-php.
Novas Categorias: PHP e Template
Seguindo a introdução do bcompiler, foi sugerido que uma categoria PHP seria útil e poderia conter pacotes como PHPDoc, PHPUnit e bcompiler, já que eles são todos pacotes e módulos que tratam de análise gramatical, compilação, etc. Foi aceito que esta é uma idéia razoável. A outra sugestão sobre a categoria Template, para pacotes como HTML_Template_IT, Template_Flexy, Template_Smart, levaram a alguma discussão e foi indicado que estas classes de Template (as quais residem sobre o HTML) poderiam ser usadas para outros tipos de arquivos (XML, Email, RTF, etc). O estado atual da votação está 2-3 votos a favor e 1 contra.
Notícias Semanais e HTML
A maioria dos tradutores indicaram que o HTML atual 'gerado pelo Mozilla' para as notícias semanais estava um pouco difícil para traduzir no vi, emacs, etc (já que ele estava um pouco 'sujo'). Alan concordou em arrumar o HTML antes de enviá-lo. Mais traduções foram adicionadas: Antônio Carlos Venâncio Júnior (Português Brasileiro) e Robert Janeczek (Polonês). O PWN deve estar usando a extensão do gettext no PHP (para os títulos principais), mas estamos esperando a confirmação do webmaster para saber se isto pode ser disponibilizado.
Smarty e PEAR
Foi concordado que ja é hora do Smarty estar disponível como um pacote do PEAR (mesmo se ele não sequir os padrões do PEAR) e apenas pequenas mudanças seriam feitas para garantir que ele funcione corretamente com o instalador do PEAR.
Movimentações no PEAR
Stig continuou a remover partes não essenciais do PEAR da distribuição do PHP (a qual eventualmente conterá o suficiente para deixar o PEAR packager funcionando). O Net_SMTP, Net_Curl e o Mail estão agora no diretório principal do PEAR no CVS (apenas arquivos de pacotes serão distribuídos com o PHP-4.3 devido a um teste de QA que será realizado em breve).
Trocando Banco de Dados no DB, MDB e ODBC
A questão surgiu sobre como trocar de banco de dados quando usando a camada de abstração de banco de dados do PEAR. Após algumas discussões a sugestão atual é usar:
$db->disconnect();
$db = DB::connect($new_dsn);
Esta é a forma recomendada, já que nem todos os backends de banco de dados (ao nível do PHP) suportam trocar de banco de dados, entretanto alguém que queira implementar tal solução que permite a troca (para banco de dados que suportam) e desconectando (para os que deixam) é bem-vindo para mandar patches. Lukas comentou que ele acredita que o MDB pode lidar com isto.
Num tópico parecido, Tomas indicou que ele estará adicionando suporte a um cursor ODBC para o formato do dsn para o exemplo:
odbc://user:pass@ds?cursor_type=SQL_CUR_USE_ODBC
Guia para Desenvolvedores e PEARdoc2
Martin Jansen adicionou um novo guia para os desenvolvedores que foi adicionado ao Manual do PEAR, para ajudar a responder aquelas dúvidas dos desenvolvedores que aparecem frequentemente, do tipo: "Como eu escrevo um arquivo de pacot?" e "Porque existe um padrão de programação?". Enquanto isso, Alexander completou sua revisão do manual do PEAR, fazendo-o mais modular e mais fácil de ser extendido, esperando ver um manual totalmente novo online muito em breve.
DB_Pager returning constant results
Richard Wall enviou um patch para fazer o DB_Pager::getData() retornar um número constante, como é atualmente feito pelo método do Google, o qual estava um pouco confuso para algumas pessoas. Foi concordado em fazer uma nova "versão amigável para desenvolvedor" como um extra ao método padrão atual.
Segurança e Config_DB
Bertand Mansion notou que o container do pacote Config_DB estava imprimindo o DSN (usuário do banco de dados, etc) quando certos errors ocorriam. Este não era um efeito desejável e notou-se que os desenvolvedores devem ser cuidadosos ao mostrar mensagens de erro contendo senhas.
Passando por Referência
Para aqueles que não sequem o PHP-DEV, dois artigos interessantes foram mencionados com relação a velocidade de passar parâmetros por referência - ao contrário do C, o PHP é atualmente mais lento quando passando (textos e números) por referência - então seja um pouco cuidadoso usando esta característica em pacotes que precisam de alta performance. Referências: [http://www.zend.com/zend/art/ref-count.php] e [http://phplens.com/lens/php-book/optimizing-debugging-php.php].
Open office and Abiword for writing docbook
Foi mencionado que o Open office estava considerando adicionar um modo de edição docbook, e que o AbiWord poderia exportar para o docbook. Entretanto, nenhuma das duas são "soluções 100%" e a melhor saída no momento é ainda o emacs, vim ou outro editor de texto; ou o XMetal para usuários Windows. Uma dica de leitura para autores é o PHPDoc how-to disponível em http://cvs.php.net/co.php/phpdoc/howto/howto.html.tar.gz.
"Instantâneos" do PEAR
Foi perguntado se um "instantâneo" de todos os pacotes do PEAR poderia estar disponível. Apesar da comunidade PEAR não ver uma grande vantagem em fazer isto (devido so grande tamanho que o PEAR acabaria tendo). Se alguém desejar fazer seus próprios instantâneos será bem-vindo. Como resultado disto foi planejado adicionar
pear upgrade-all
o qual atualizaria todos os pacotes instalados para suas versões mais recentes.
Powered by PEAR
Colin Viebrock adicionou um novo ícone "Powered by PEAR" para ser usado em sites que utilizem o PEAR. Você pode baixá-lo em http://pear.php.net/gifs/pear-power.gif.
Erros e Correções
Obrigado a Paweł Gołaszewski, Matt Allen, James E. Flemer, Tal Peer e Dave Clark pela detecção de erros e algumas correções.
Pacotes Propostos
Cache_Lite - SpeedyGonzales's Caching.
Marty Fabien propôs uma versão mais enxuta da classe Cache que estaria focada no desempenho (numa classe simples), segurança em NFS e Block Caching. Após muita discussão sobre o nome (incluindo sugestões como Cache_Fast, Cache Simple, Cache_HighTraffic, Cache_RoadRunner, Cache_SpeedyGonzales and Cache_BeepBeep) o escolhido foi Cache_Lite. Notou-se que aceleradores como Zends, PHPAcelerator e APC poderiam fazer uma diferença considerável se você está preocupado com velocidade/desempenho.
Development
Ativos nesta semana no CVS: MDB, Manual do PEAR e FAQ, PECL::soap, DB, HTML_Table, XML_CSSML, PHPDoc, Mail, HTML_Javascript, Auth_HTTP, PECL::bcompiler, HTML_QuickForm, Config, Log, Auth, PEAR_FrontEnd_Gtk, XML_RPC e Net_NNTP.