PHPit - PHP

"Agora, pois, permanecem a fé, a esperança, o amor, estes três; mas o maior destes é o amor." (I Coríntios 13:13)

Tornando-se compatível com o PHP 6

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.

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:

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2.  
  3. $_GET['entrada'];
  4.  
  5. $_POST['entrada'];
  6.  
  7. $_REQUEST['entrada'];
  8.  
  9. ?>
<?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.

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2. $a = & new objeto(); // Não faça isso
  3. $a = new objeto(); // Faça assim no PHP 6
  4. ?>
<?php
    $a 
= & new objeto(); // Não faça isso
    
$a = new objeto(); // Faça assim no PHP 6
?>

Conclusão


A migração sempre as 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

Dim dim

 

Comentaí! (08)

Buenas Rafa, muito bom o Post, ano passado na ConaPHP em SP vi a palestra de um dos desenvolvedores Core do PHP, o Andrei Zmievski (http://gravitonic.com/), onde ele falou muito das transições que ocorreram até o PHP6, e que na real isso tudo vai acontecer antes, provavelmente na versão 5.3 e depois... para na versão 6 implementarem tudo em Unicode, estou ancioso!

Abraço André em 07/04/2009 às 14:33 utilizando o Mozilla Firefox Mozilla Firefox 3.0.8 no Windows Windows XP
Rapaz eu infelizmente ainda uso erege. Ate que minha dor de cabeça n vai ser tão grande assim... fabiov3 em 14/07/2009 às 21:46 utilizando o Internet Explorer Internet Explorer 8.0 no Windows Windows Vista
=D muito bom o post, coloquei um post sobre o assunto em meu blog http://www.programei.org/index.php/14/10/2009/novidades-do-php-6/

mais gostei de seus exemplos... André G em 14/10/2009 às 22:28 utilizando o Google Chrome Google Chrome 3.0.195.27 no Windows Windows XP
Creio que existam muitas coisas a serem analisadas no PHP 6, considerando que no PHP 5.3 muitas coisas foram removidas, marcadas como obsoletas ou modificadas, no PHP 6 há muita incompatibilidade a ser modificada nos códigos atuais. Gilberto Albino em 18/10/2009 às 15:00 utilizando o Opera Opera 9.80 no Windows Windows NT
Maneiro o post, vlw José Geraldo em 13/11/2009 às 01:51 utilizando o Mozilla Firefox Mozilla Firefox 3.5.5 no Windows Windows XP
Muito bom!!! Obrigado =) Luiz Henrique em 11/12/2009 às 09:44 utilizando o PHP PHP
Primeiramente meus cumprimentos as pessoas deste blog e deste post.

Sou formado em Ciência da Computação e trabalho com web a um bom tempo, com PHP à 5 anos. Claro que começei também com scripts simples e descobrindo o que a linguagem poderia me oferecer de bom. Mas a evolução é um processo natural e é muito bom, quem nunca aprendeu um recurso novo de uma linguagem e ficou contente com isso??

Evoluir na linguagem significa alcançar novos mercados, porque podemos desenvolver aplicações melhoradas, mais robustas e que sejam mais faceis de serem modificadas, gerenciadas e principalmente modeladas usando técnicas de Engenharia de Software, sendo assim a evolução do para a versão 6 é um passo muito importante e bom!

Como ser humano, ninguem vai ficar parado no tempo e deixar de evoluir ou de buscar novas formas de programar, mesmo os novatos estão ai também para acompanhar e se desenvolverem com os novos recursos e os mais experientes também querem mais, porque eu e como todos num geral, não gosto de aprender algo e fazer sempre o mesmo isso é caminha em circulo, queremos sempre melhorar algo nem que seja simples e isso com certeza só traz beneficios, porque você abre a mente para novos temas, resolve problemas que não imaginava resolver e isso tudo retorna em um diferencial de mercado fazendo tanto com que a linguagem ganhe mais destaque como também o próprio programador seja mais valorizado, isso reflete em resultados pessoais e para que as empresas ganhem qualidade também.

De forma resumida pensando também no lado empreendedor, essa evolução só tem a agregar mais valor nos softwares desenvolvidos colocando caracteristicas diferenciadas no mercado e consequentemente retornando mais lucros a empresa e elevando seu potêncial com a linguagem.

A outros aspectos mais importantes que podem ser complementados para este post do que ficar apenas criticando a linguagem que este se tornando melhor ainda.
[Pense nisso!]

Um abraço a todos da nossa área e deste post.

[Mayco H.] Mayco H. em 29/12/2009 às 09:26 utilizando o Mozilla Firefox Mozilla Firefox 3.5.6 no Windows Windows XP
Otimo post. :)

Parabens! Angelito M. Goulart em 22/03/2010 às 02:25 utilizando o Mozilla Firefox Mozilla Firefox 3.5.6 no Fedora Linux Fedora Linux
 

Comenta logo, pô!

* Todos os links inseridos nos comentários possuem rel="nofollow" para impedir com que crawlers considerem os mesmos como relevantes.
* Os e-mails não são divulgados.

Dados pessoais

Você é realmente um humano?

Finalmente, digite seu comentário :)

Caixinha de Sugestões

O que é isso? Aqui você pode simplesmente digitar uma sugestão (artigos, resenhas, melhorias, etc) sem precisar preencher longos formulários. Digite o que quiser na caixinha abaixo e eu lerei com o maior prazer! Se quiser se identificar, fique a vontade!

O PHPit é redigido e mantido por Rafael Jaques - Política de Privacidade.

XHTML/CSS desenvolvido por André Gazola.

PHPit 2007 - 2009 - Alguns direitos reservados.

Feeds ;)

Creative Commons License

PHPit por Rafael Jaques é licensiado sob a Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.