A morte do PHP 4

August 14th, 2008 by newton

A versão 4 do PHP, lançada no ano 2000, foi a que contribuiu definitivamente para que ela se tornasse o que é hoje, teve sua morte decretada no dia 07/08/08 (quase que cai no dia 8 também) com o lançamento de sua última release, a 4.4.9.

Esta versão, que trouxe consigo o primeiro Zend Engine, contribuiu para o crescimento do PHP até ele se tornar a linguagem web mais utilizada no mundo, segundo ranking da Tiobe Software e, apesar de estar perdendo espaço continuamente para outras versões mais novas, ainda está presente em diversos ambientes espalhados por aí.

A princípio, a sugestão dos desenvolvedores da linguagem era de que novas releases do PHP 4 só fossem realizadas para correções de falhas de segurança, mas chegaram a conclusão de que isto já vinha sendo feito no último ano, e que não havia mais razão para dar continuidade ao desenvolvimento.

Sinceramente, acredito que esta seja uma decisão até tardia, uma vez que o PHP 5 foi lançado em 2004. A morte da versão anterior deve estimular os desenvolvedores e administradores de sistemas a atualizar suas aplicações/servidores, até por uma questão de segurança, além de todos os benefícios já envolvidos em relação à evolução do PHP.

Vida longa ao PHP 5+, e que venha o 6.

Lançado Kohana Framework 2.2

August 9th, 2008 by newton

Os desenvolvedores do Kohana escolheram uma data curiosa para o lançamento da versão 2.2 do framework, 08/08/08, competindo com a abertura dos jogos olímpicos da China (que ganhou medalha de ouro chegando na frente, uma vez que o dia lá começa bem antes do que por aqui).

Com a nova versão a promessa de abandonar ainda mais alguns vestígios do seu “pai”, o Code Igniter, como a remoção da classe Loader. Além disso, novos módulos foram implementados como o de Compressão de Arquivos, Integração com Google Maps e Captcha, dentro outros.

Visite o site oficial do Kohana para mais informações ou para fazer o download da nova versão.

RSS Feeds versus Newsletters

August 8th, 2008 by newton

Ao se fazer um web site, grande parte dos desenvolvedores pensa em agregar os diversos tipos de funcionalidades “web 2.0″, e uma das mais populares entre os desenvolvedores atualmente é o oferecimento de conteúdo através de RSS Feeds.

Em uma recente experiência, em um site que não trata de tecnologia nem blogs (blogueiros são leitores compulsivos de feeds :D), tínhamos apenas 35 leitores de RSS cadastrados, com contabilização realizada através do FeedBurner, mesmo com um tráfego médio de 5 mil visitantes únicos/dia. Essa incoerência de visitas/assinantes me incomodava, pois aqui no meu blog, tenho o inverso, mais assinantes do que visitantes únicos por dia.

A conclusão que cheguei foi óbvia: o RSS ainda é desconhecido do usuário médio, e é mais utilizado por pessoas que se relacionam à tecnologia ou blogs de alguma forma (entusiastas, blogueiros, informatas, …). Desta forma, um blog que trata de tecnologia (este) tinha mais assinantes do que um “concorrente humorístico” que tinha 100 vezes mais visitantes, e, por incrível que pareça, não há nada de errado nisso.

A solução para este problema foi encontrada no próprio FeedBurner, que oferece também a distribuição do conteúdo por e-mail, nada mais do que a boa e velha Newsletter. Como os usuários estão mais familiarizados com seu e-mail, “receba novidades do site por e-mail” é muito mais atraente do que “assine meu Feed RSS“.

Com a inclusão de uma chamada discreta para o cadastro, vi a quantidade de assinantes triplicar em um curto período de tempo, comprovando que Newsletters ainda são mais efetivas do que os Feeds para sites direcionados ao usuário comum da internet.

Panela velha é que faz comida boa, também na web?

Lambda Functions/Closures no PHP 5.3

August 5th, 2008 by newton

Das diversas alterações anunciadas no lançamento da Alpha 1 do PHP 5.3, a que mais me chamou a atenção foi, sem dúvidas, a implementação de “Lambda Functions/Closures“. Mais até do que a implantação de Namespaces, que foi tão discutida por aí que não deve ter causado nenhum impacto mesmo.

Se você ao ler isso, assim como eu ao ler a notícia no php.net, está se perguntando: “ok, mas o que é isso afinal?”, acho que um trecho de exemplo de código vale mais do que mil palavras:

$variavel = function () { echo "Hello World"; };
$variavel ();

Pronto. Isso é, nada mais, nada menos, do que um Hello World com “lambda function”. Você pode estar pensando que já viu isso em algum lugar e tem toda razão. Se você desenvolve JavaScript há algum tempo, provavelmente já viu esse tipo de atribuição, principalmente para adicionar uma funcionalidade a um evento em um objeto.

Assim como no JavaScript, você poderá passar parâmetros para a função. Usando mais uma vez o famoso Hello World:

$variavel = function ($string) { echo $string; };
$variavel ("Hello World");

Indo mais além, você pode definir quais variáveis de fora do escopo da função, serão utilizadas lá dentro, e têm comportamento idêntico ao dos parâmetros de uma função, isto é, elas são, na verdade, copiadas para dentro do escopo da função e, caso queira, você pode passá-las por referência, utilizando o caracter &:

$hello = "Hello";
$world = "Newton";
$variavel = function () use ($hello, &$world)
{
	$hello = "Hi";
	$world = " World";
	echo $hello . $world; // echoa "Hi World"
};
$variavel ();
echo $hello . $world; // echoa "Hello World"

No exemplo acima, definimos as strings $hello e $world. Depois, chamamos a função, informando que usaríamos as mesmas variáveis, sendo que $world está sendo passada por referência. Ainda dentro da função alteramos as duas e exibimos na tela. Após a execução da função, exibimos novamente as variáveis $hello e $world, sendo que a primeira foi alterada apenas dentro do escopo da função e a segunda, passada por referência, sofreu alteração (incluímos o espaço ali pra quem não notou).

Muito interessante a implementação da chamada da função, que acabou ganhando aplicação em objetos, que, ao serem chamados no formato $objeto(), chama automaticamente o método mágico __invoke() da classe:

class Objeto
{
	public function __invoke()
	{
		echo "Hello Objeto";
	}
}
$objeto = new Objeto
$objeto (); // exibe na tela "Hello Objeto"
// lembro que "echo $objeto;" continuará chamando __toString()

Confesso que, a primeira vista, não consegui achar utilidade nenhuma pra isso, além de uma forma diferente de trabalhar com funções, principalmente em chamadas de callbacks (call_user_func()), onde você passaria uma variável ao invés de um array ou uma string. Porém, comentando o assunto por aí, alguns desenvolvedores se mostraram entusiasmados com a novidade. Minha recomendação é aquela padrão: use com moderação, somente em casos onde de fato for relevante.

Mais detalhes sobre lambda funcions/closures no wiki do php.net, ou ainda, no anúncio do lançamento da 5.3 alpha 1.

Estou também no LinkedIn

August 3rd, 2008 by newton

Não há muito o que dizer além do que o próprio título do post. Muitos me avisaram que o LinkedIn era uma ferramenta profissional muito útil, mas nunca levei tanta fé. Porém, esses dias recebi o convite de um amigo e resolvi dar uma olhada por lá. Acabei encontrando profissionais com quem trabalhei e que, com certeza, estão fora da “onda” da internet, isto prova que a ferramenta deixou de ser hype para se tornar referência no assunto.

Se você ainda não está lá, recomendo entrar. Quando passar lá dá uma olhada no meu profile.

CONAPHP - Congresso Nacional de PHP 2008

August 1st, 2008 by newton

A comunidade PHP brasileira já tem seu ponto de encontro em 2008 para troca de conhecimento e networking. Trata-se do CONAPHP, o Congresso Nacional de PHP, que ocorrerá integrado ao CONISLI, evento já conhecido de software livre, nos dias 18 e 19 de outubro na FIAP de São Paulo.

Segundo o site do evento, já estão confirmadas as presenças internacionais de Andrei Zmievski, responsável pela criação do Smarty Templates e PHP-GTK, e César Rodas, vencedor do PHP Programming Innovation Award de 2007 organizado pelo site PHPClasses e participante do Google Summer of Code (GSoC) 2008.

Este evento está sendo organizado pelo grupo formado a partir da união das comunidades locais de PHP no Brasil, isto é, um evento da comunidade para a comunidade.

Mais informações sobre o evento você vê no site oficial.

Fechar
Envie por e-mail