Problemas de incompatibilidade no PHP 5.3

PHP 5.3Hoje vou falar um pouquinho sobre os problemas de incompatibilidade que vocês devem passar ou já passaram ao tentar migrar o seu servidor do PHP 5.x para a versão 5.3.

 

A última versão do PHP 5.2 foi em 6 de janeiro de 2011 com a versão 5.2.17 e esta deixou de ser suportada, ou seja, não é oferecido pela comunidade do PHP nenhum acompanhamento de erro ou melhoramento as versões 5.2.de 2011 e a própria comunidade PHP encoraja seus usuários a a atualização da mesma “Todos os usuários do PHP devem notar que a versão PHP 5.2 não é mais suportada e são fortemente encorajados a atualizar para o PHP 5.3″

 

Felizmente a lista de coisas a se mudar não é grande e eu diria que 95% dos sites funcionarão bem, sem apresentar erros após a atualização.

 

Mas vamos a uma listinha de itens que vocês podem atentar para resolver qualquer problema que venha a aparecer no topo do seu site, te deixando desesperado:

 

  • A nova API interna de interpretação de parâmetros foi aplicada em todas as extensões que venham com PHP 5.3.x. Isso faz com que as funções retornem nulo (NULL) quando forem passados parâmetros incorretos. Existem ainda algumas exceções à essa regra, como a função get_class() que continua retornando falso (FALSE) em caso de erro

 

  • A função clearstatcache() não limpa mais o cache do realpath por padrão

 

  • A função realpath() agora é independente da plataforma. A conseqüencia disso é que caminhos relativos inválidos como __FILE__ . “/../x” não funcionarão mais.

 

  • A família de funções da call_user_func() agora propaga o $this até quando chamada por uma classe pai.

 

 

  • A nova biblioteca mysqlnd necessita do uso do novo formato de password do MySQL em 41 bytes (MySQL 4.1?s newer 41-byte password format). Continuar usando o formato antigo de senha (de 16 bytes) fará com que o mysql_connect() e funções similares emitam o erro “mysqlnd cannot connect to MySQL 4.1+ using old authentication.

 

  • A nova biblioteca mysqlnd não lê o arquivo de configuração do MySQL (my.cnf oumy.ini) como a versão antiga fazia. Se o seu código usa essas configurações você pode carregá-las explicitamente usando a função mysqli_options().

 

  • A barra final (/) foi removida da classe SplFileInfo e de outras classes relacionadas a diretórios.

 

  • O método mágico toString não aceita mais argumentos.

 

 

  • O método mágico call agora é chamado tanto no acesso de métodos privados, como nos protegidos.

 

E não podemos esquecer das novas palavras reservadas que não podem ser usadas em nomes de classes, variáveis, funções e etc:

 

 

Nem preciso dizer a importância de se atualizar o seu sistema… As melhorias em segurança são incontáveis e testes provaram que você tem um ganho de até 30% de performance só de mudar do PHP 5.x para o 5.3!

 

Fonte: Thiago Belem