Hoje 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 excessoes à 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
- As funções de array natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), earray_unique() não aceitam mais objetos passados como argumentos. Para usar essas funções em objetos você deve antes convertê-los em arrays
- 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
- Os métodos mágicos __get, __set, __isset, __unset, e __call devem ser públicos e não mais estáticos.
- 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: http://blog.thiagobelem.net
Relacionado
Sobre o blog
Este Blog tem o objetivo de divulgar as novidades da WebinHost e compartilhar notícias sobre hosting, servidores, empreendedorismo e todo universo tecnológico.
Ola Amigo. Boas dicas. Mas comno eu faço para o mysql_connect() e funções similares NAO emitam o erro “mysqlnd cannot connect to MySQL 4.1+ using old authentication.“?
Entao vai migrar quando?
A atualização já foi feita, foi avisado desde fevereiro….. que a mudança seria realizada entre julho e agosto.