Tornando-se compatível com o PHP 6

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Fonte: http://bitfilm.net/2007/09/21/becoming-php-6-compatible/

Prefácio

Desenvolvedores PHP, assim como todos os outros desenvolvedores, desejam que seus códigos sejam o mais compatível possível. Algumas vezes isso envolve olhar pro passado e ver se os scripts possuem retro-compatibilidade. Porém, algumas vezes, temos que olhar para o futuro para ver o que está mudando e entender o que podemos fazer para tornarmo-nos compatíveis.

PHP 6 é a versão mais recente (ainda não lançada) do PHP. Ainda está em desenvolvimento e não será liberada tão cedo. Porém, é importante já irmos considerando as mudanças que tomamos conhecimento até o momento e escrever scripts que serão compatíveis. São pequenas dicas que irão te ajudar a melhorar seus scripts e ainda ganhar uma moral.

Quem já está usando o PHP 5.3 está percebendo as mudanças. Da versão 5.3 pra cima, teremos tudo que estará no PHP 6, a única diferença é o suporte a unicode que ainda não está presente… De resto, será tudo igual (em princípio).

Mão na massa

Se você quiser fazer uso do PHP 6 assim que for lançado, você terá que escrever seus novos scripts para que sejam compatíveis, e possivelmente mudar alguns que já existam. Para começar a montar os seus scripts compativeis com PHP 6, abaixo você confere alguns tópicos com os quais terá que se preocupar daqui pra frente quando estiver programando.

* Não utilize register_globals

No PHP 6 o suporte para register_globals será retirado. Não haverá opção para habilitar ou desabilitar, ou seja, não existirá mesmo! Se você é um bom programador, que segue as boas práticas, não deverá ter problemas, uma vez que já faz tempo que esta diretiva tem sido condenada por entusiastas de todo o mundo. Porém, se você ainda não conhece, a register_globals é uma diretiva que põe todas as variáveis de $_REQUEST com escopo global, assim você poderá acessá-las como se fossem quaisquer outras variáveis. Ao invés disso você deverá usar as boas práticas e retornar os dados assim:

<?php

    $_GET['entrada'];

    $_POST['entrada'];

    $_REQUEST['entrada'];

?>

* Pare de utilizar magic_quotes

Na minha opinião, você deve utilizar essa dica, não importa se está no PHP 3, 4 ou 5. Graças a Deus, no PHP 6, a propriedade magic_quotes irá desaparecer juntamente com a register_globals. Para aqueles que não conhecem, magic_quotes automaticamente escapa () aspas simples, aspas duplas, contra-barras e caracteres NULL.

* Não registre Arrays longas

Se você acessava os dados enviados pelo usuário através de $HTTP_POST_VARS ou $HTTP_GET_VARS, é melhor parar agora. Ao invés disso, você deveria utilizar as superglobais $_SERVER, $_COOKIE, $_GET, $_POST, $_FILES, etc…

* preg ao invés de ereg

Se você está usando as funções ereg para trabalhar com expressões regulares, então você deveria começar a usar preg. ereg não estará mais disponível no core do PHP 6.

* Não inicialize objetos com operador de referência

Se você estava inicializando objetos com com operador de referência, então está na hora de parar. Isso irá gerar um erro do tipo E_STRICT no PHP 6.

<?php
    $a = & new objeto(); // Não faça isso
    $a = new objeto(); // Faça assim no PHP 6
?>

Conclusão

A migração sempre às vezes é difícil, mas ir alterando os scripts aos pouquinhos ajuda a tornar este processo menos doloroso.

Espero que as dicas tenham sido úteis e que possam utilizar em breve nos seus scripts!

Um abraço a todos e fiquem com Deus.
Rafael Jaques