Você está na página 1de 2

Algumas mudanas na verso 6 do PHP

Rolf Jesse Frstenau * www.rjfsistemas.com.br 12 de junho de 2008

No site da IBM se encontra um artigo descrevendo algumas das principais mudanas na verso 6 do PHP. O artigo, chamado The Future of PHP, de 6 de maio de 2008 e encontra-se em http://www.ibm.com/developerworks/opensource/library/os-php-future/ Como mais cedo ou mais tarde os servidores sero atualizados para novas verses, prudente comear a escrever desde j scripts que sejam compatveis, evitando assim a necessidade de rescrever cdigo futuramente. Entre as novidades do PHP est o uso de namespaces para evitar a coliso de nomes de funes e classes. O mesmo nome pode ser usado em namespaces diferentes. Este conceito de organizao de classes se popularizou com o framework .NET da Microsoft. Para atender as necessidades da chamada Web 2.0, o PHP vir com o protocolo SOAP habilitado como padro para comunicao com webservices e as classes XMLReader e XMLWriter para facilitar a manipulao de arquivos XML. Uma caracterstica interessante que a linguagem passar a suportar o formato UNICODE, o que facilitar a internacionalizao. ATENO: Sero removidos do PHP6 as seguintes funcionalidades:: magic_quotes register_globals register_long_arrays safe_mode Estas remoes implicaro em mudanas em grande parte dos scripts antigos. Portanto, para economizar tempo de reescrita de cdigo, recomendado desde agora adotar algumas prticas como as listadas a seguir. 1) Evitar o uso de magic_quotes. Se habilitado, este recurso adiciona uma barra invertida diante das aspas simples, aspas duplas, barras invertidas e NULL. Este recurso usado muitas vezes para evitar SQL Injection. Como alternativa podem ser usadas as funes mysql_escape_string para MySQL ou pg_escape_string para PostgreSQL. 2) No utilizar o register_globals. Este recurso vem desabilitado no PHP, por padro, desde a verso 4.2, porm ainda muito utilizada. Com esta funcionalidade, os dados passados para o script so automaticamente convertidos em variveis. Por exemplo, o script poderia sair usando uma varivel $username gerada a partir de uma submisso de um formulrio HTML. prtico, mas inseguro. Uma alternativa o uso de variveis de sesso para controlar o acesso. O manual do PHP (disponvel em www.php.net) apresenta um exemplo de mau uso do register_globals:
<?php // definir $authorized = true apenas se o usurio est autenticado if (authenticated_user()) { $authorized = true; } // Por isso ns primeiro no inicializamos $authorized como false, isto poderia // ser definido atravs de register_globals, como por GET auth.php?authorized=1 // ento, qualquer um pode ser visto como autenticado!

if ($authorized) { include "/highly/sensitive/data.php"; } ?>

3) No utilizar mais as variveis prdefinidas $HTTP_*_VARS. Este recurso, register_long_arrays, ser removido por questes de performance. Por exemplo, um script que acessa um valore atravs de $HTTP_GET_VARS['username'] deve substituir este pedao de cdigo por $_GET['username'] . 4) O safe-mode ser extinto. Com essa configurao o servidor verifica se um arquivo que esta sendo acessado por um script tem o mesmo proprietrio que o script que esta fazendo o acesso. Esta questo de segurana ficar sob responsabilidade do administrao do Sistema Operacional. 5) As tags no estilo ASP sero abandonadas. No sero mais utilizados <% e %> para delimitar o incio e o fim de cdigos PHP. De preferncia devem ser usadas as tags <?php e ?>. Algumas novidades j sero implementadas na verso 5.3, que deve ser lanada ainda em 2008, como os namespaces.

* Rolf Jesse Frstenau desenvolvedor de software, Bacharel em Cincias da Computao pela UFRGS com ps-graduao em Gesto e Estratgia Empresarial pela ULBRA. Possui cerca de 6 anos de experincia profissional em desenvolvimento de software. Contato: rolfjf (at) gmail

Você também pode gostar