Por que atualizar a versão do PHP para a 5.6?


É difícil manter nossos sistemas atualizados, sobretudo aqueles que apresentam maior complexidade. Porém, se atualizarmos um pouquinho a cada dia, essa tarefa se torna mais tranquila. Neste artigo vamos falar do por que atualizar a versão do PHP para a 5.6.

Muitos acreditam que a atualização de sistemas demanda tempo e dinheiro, mas não visualizam que esta atividade pode, justamente, evitar que você venha a perdê-los em caso de um comprometimento do mesmo devido a falhas de segurança.

Atualizar seus sistemas, além de torná-los mais seguros e menos suscetíveis a invasões, permite, muitas vezes, acesso a novas funcionalidades, além de um desempenho superior, trazendo assim uma melhor experiência para seus usuários e/ou clientes

Para tornar sua vida mais fácil durante este processo, traremos neste artigo um breve tutorial para lhe auxiliar em manter sua versão do PHP sempre atualizada.

O que eu ganho atualizando a versão de PHP de meus sistemas?

Há várias razões para fazer a atualização do PHP. Uma delas é o fato das versões anteriores à 5.6 estarem descontinuadas. Ou seja, elas não oferecem mais atualizações de segurança, deixando seus sistemas vulneráveis a ataques maliciosos.

Outros dois bons motivos para atualizar são a performance e o consumo de recursos. A cada versão do PHP, a velocidade de execução de scripts é melhorada, além deles utilizarem cada vez menos recursos computacionais. Para corroborar esta afirmação, o gráfico abaixo demonstra o quanto uma aplicação PHP pode atender a mais requisições apenas efetuando a troca de versão.

migração

Bacana, né? Em nosso post sobre o lançamento do PHP 7.2, falamos mais sobre a performance das versões 7.x em comparação com as antigas versões 5.x. Também já destacamos a importância de manter suas versões de PHP atualizadas.

OK! Vocês me convenceram. Para qual versão atualizar minha aplicação?

Se você utiliza atualmente uma versão do PHP inferior à versão 5.6, indico inicialmente a atualização para esta versão, a fim de aproveitar agora mesmo os ganhos de performance e segurança que esta versão traz para a série 5.x sem que ocorra grandes incompatibilidades.

Porém, como a versão 5.6 entrará em final de ciclo de vida (EOL) no final deste ano, foque seus esforços em migrar para a série 7.x, visto que a versão 5.6 entra no final de seu ciclo de vida em novembro de 2018.

O que mudou no PHP 5.6 que eu devo me preocupar?

Agora vamos entender as funções que estão sendo descontinuadas e como compatibilizar sua aplicação.

  • Suporte a nova sintaxe para arrays

Foi adicionado suporte ao short array syntax, em vez de declarar um array sendo

agora é possível declarar como

Outras novidades podem ser vistas no manual de migração.

Outras mudanças importantes 

  • MySQL => MySQLi

Algumas funções da extensão mysql vem se tornando obsoletas desde a versão 5.3 do PHP,  algumas inclusive, já foram removidas da versão 7. Como alternativa, é possível utilizar as extensões PDO_MySQL ou a mysqli, conforme exemplos abaixo:

O código de conexão com o mysql era

Agora é

Para alterar uma base era

Agora é

Para executar queries o código era

Agora é

Outras funções ficaram

  • magic_quotes => addslashes()

O uso do magic_quotes foi descontinuado pelo PHP, com isso ganhamos mais performance no PHP.
É possível utilizar a função addslashes(), quando necessário, para substituir o magic_quotes
Um exemplo de uso abaixo

ex. 1:

ex. 2:

  • ereg, eregi => preg_match()

Tanto a função ereg quanto a eregi foram removidas da versão mais recente do PHP devido a bugs encontrados nelas.
O uso dessas funções podem ser

  • ereg_replace, eregi_replace => preg_replace()

Assim como o ereg() e o eregi(), as funções ereg_replace() e eregi_replace() também foram removidas na versão mais recente do PHP.
Essas funções podem ser facilmente substituídas pela função preg_replace(), abaixo um exemplo para a migração da função.

  • session_register, session_unregister, session_is_registered => $_SESSION

As funções session_register(), session_unregister() e session_is_registered() deixaram de funcionar desde a versão 5.4 do PHP. Porém, é possível utilizar a a variável super global $_SESSION. Abaixo alguns exemplos para substituição.

  • php_mssql => sql_srv

A biblioteca mssql já não vem mais habilitada desde a versão 5.3 do PHP. Atualmente a microsoft desenvolveu o driver sqlServ, que pode ser utilizada como substituto ao php_mssql.
Abaixo uma tabela com as funções e suas comparações.

Retirado do blog MSDN da Microsoft.

  • split => explode

A função split tornou-se obsoleta na versão 5.3. Há alternativas para substituição, como preg_split(), str_split() ou explode().
Abaixo exemplo utilizando explode().

Eu não manjo de programação PHP. #comofaz?

Para você, que deseja utilizar uma nova versão de PHP mas não possui domínio da linguagem para realizar grandes alterações no código, compartilho com você um projeto que foi criado para PHP 7 e superior, que com um simples include em seus scripts PHP, te permite usar funções descontinuadas em versões superiores de PHP. Você encontra o projeto no Github.
Veja abaixo um trecho do código que retirei do projeto de como foram feitas as criação das funções de compatibilidade:

Vale ressaltar que para cada função foi utilizado “function_exists”. Ou seja, só irá definir a função se esta já não existir, impedindo assim que a função seja reescrita caso a versão do PHP selecionada já possua esta função definida nativamente.

Para utilizá-las, baixe os arquivos para o seu FTP e utilize a função include do PHP. Abaixo, uma simples demonstração de uso:

A partir deste momento, você poderá utilizar funções descontinuadas como, por exemplo, o ereg:

Para que não precise fazer os 3 includes em todos os seus scripts, indico que crie um arquivo, por exemplo, autoload.php, adicione os includes necessários e só chame este autoload.php nos scripts que necessitarem deles. Caso sua aplicação tenha um script que seja instanciado em todos os seus script, faça o include deste script autoloader.php neste arquivo.

Conteúdo elaborado pelo colaborador pelo colaborador Franklin Guimarães Fernandes Junior – Analista de Infraestrutura na KingHost, com atualização de Diego Cassolli em Agosto/2018.

Fique ligado no Blog da KingHost para mais novidades e materiais sobre PHP.

Comentários

comentário(s)