PHPTecnologiaUtil

Novidades do PHP 5.3

O PHP 5.3 esta previsto para ser lançado em abril e traz features que a tornam uma das versões mais aguardas pelos desenvolvedores PHP. Nesse artigo vou listar as principais novidades que foram anunciadas.

Namespaces
Para quem acompanha o desenvolvimento da linguagem, sabe que essa feature é a mais pedida e a mais polemica nas listas de discussão. Originalmente prevista para sair no PHP6, foi adiantada para alegria da galera :). Essa nova versão virá com uma implementação completa de Namespaces, com suporte a autoload e namespaces hierárquicos.

Isso permite aos desenvolvedores organizar melhor o código, evitando conflitos com bibliotecas internas do PHP ou de terceiros e produz um código mais limpo e legível. Essencial para o pessoal que desenvolve frameworks.

Voce agora pode fazer um código assim:

namespace teste;
class minhaClasse {
const COR = ‘Azul’;
public function executar(){}
}

e usar assim:

$var = teste::minhaClasse::executar();

ou

use teste;
$var = new minhaClasse::executar();


Para mais informações sobre namespaces, visite aqui(em portugues), aqui ou aqui.

Garbage Collector
Esse item me surpreendeu. Agora é possível fazer limpeza da memoria não mais utilizada, reduzindo os problemas como o fatídico “Memory allocation error”. Excelente para quem constrói sistemas de grande porte e esta preocupado com a escalabilidade.exemplo de funções:

gc_enable(); // Enable Garbage Collector
var_dump(gc_enabled()); // true
var_dump(gc_collect_cycles()); // # of elements cleaned up
gc_disable(); // Disable Garbage Collector


Performance
No geral esta nova versão é 15% mais rápida. Os itens que se destacam é a otimização do acesso a memoria, melhorias no tratamento de exceções e redução das chamas ao sistema pelos métodos require(_once), include(_once).

MySQLnd
Uma das maiores novidades dessa versão é um nova biblioteca para acesso ao Mysql, feita para substituir a atual e desenvolvida pelo próprio pessoal da Mysql especialmente para o PHP.
Entre as vantagens podemos citar:

Velocidade de acesso aos dados
menor consumo de memoria
integração com o PHP e não dependência de driver
possibilidade de retornar estatísticas, para otimização de performance
Infelizmente ainda não existe uma versão para PDO pronta

__DIR__
Agora temos um metodo magico para saber em que diretorio o script está.
O que era feito assim:
echo dirname(__FILE__); // <>

agora pode ser feito assim:
echo __DIR__; // >= PHP 5.3

Novo operador ?:
Parecido com o já existente operador ternário, o operador ?: retorna o valor não vazio de 2 expressões.
Exemplo:

$a = true ?: false; // true
$a = false ?: true; // true
$a = “” ?: 1; // 1
$a = 0 ?: 2; // 2
$a = array() ?: array(1); // array(1);
$a = strlen(“”) ?: strlen(“a”); // 1

__callStatic()
Tem a mesma finalidade da função __call para objetos, mas agora para metodos static.

Static Calls
O PHP agora suporta chamadas dinamicas a metodos static
exemplo:

class helper {
static function foo() { echo __METHOD__; }
}
$a = “helper”;
$b = “foo”;
$a::$b(); // helper::foo

Bibliotecas e outras coisas

Melhorias na classe SPL e adição de novos metodos.
Adicionada novas funções de manipulação de datas
Criada a opção de “profiling” na XSLT
um novo HEREDOC chamado NOWDOC que não precisa escapar as variaveis
atualizado para o SQLite 3.5.6
varias otimizações CGI/FastCGI SAPI
Novo tipo de erro E_DEPRECATED que indica que o método será removido (Preparando para o PHP6)

Conclusão
Com essa nova versão, a equipe de desenvolvimento do PHP mostra que esta preocupada com o chamado “enterprise ready”, criando features solicitadas pelo mercado e preparando o terreno para o PHP6 que deve desembarcar somente na metade de 2009.

Para saber mais:
Entrevista com Andy Gutmans
Roadmap PHP 5.3
Artigo de Gergely Hodicska


Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *