Nova versão do PHP disponível no sistema - Veja as novidades

Em novembro do ano passado(2024) foi lançada a nova versão 8.4 do PHP. Esta versão já está disponível nos sistemas da Hosting Machine. Por conta disso, nesse post falaremos sobre os principais recursos adicionados e descontinuados dessa nova versão.

O que é PHP?

Em suma, o PHP, ou Hypertext Preprocessor, é uma linguagem de programação de código aberto que é muito usada para o desenvolvimento de sites e aplicações na web. Embora inicialmente tenha sido criado para ser uma ferramenta de contagem de visitantes, hoje ele é um dos principais pilares de desenvolvimento na web. Isso é perceptível porque cerca de 75% dos sites da internet usam o PHP, incluindo o WordPress e Wikipédia.

Isto é porque o código PHP é executado diretamente no servidor, dessa forma gerando HTML diretamente para o navegador. Por conta disso, ele se destaca pela sua facilidade de uso, sua integração com bancos de dados(ex: MySQL) e sua disponibilidade em diversas plataformas(ex: Windows, Linux, macOS). Além disso, ele também suporta outras práticas como a Programação Orientada a Objetos(POO) e frameworks.

PHP 8.4

Sendo lançado oficialmente no dia 21 de novembro de 2024,  a versão 8.4 trouxe novos recursos, melhorias e descontinuou alguns recursos. Isto é feito com o objetivo de melhorar o desempenho, tornar essa linguagem mais eficiente e simplificar a sua estrutura.

Sendo assim, o PHP 8.4 trouxe diversas mudanças buscando melhorar a experiência do desenvolvedor e a performance das aplicações.

Quais são os novos recursos?

Como dito anteriormente, a nova versão 8.4 do PHP adicionou vários recursos para a linguagem. Entre os principais recursos adicionados estão:

Hooks de propriedade

Um dos novos recursos que ganharam mais destaque no lançamento dessa versão foram os hooks de propriedade. Já que, com essa nova função é possível definir comportamentos personalizados quando você acessar ou modifica as propriedades de uma classe. Nas versões anteriores era preciso usar os métodos get set para conseguir controlar a leitura e a escrita das propriedades. Entretanto, com os hooks você tem uma maneira mais direta de executar as operações, também simplificando a sintaxe e reduzindo a quantidade de códigos. Assim, resultando em códigos mais limpos e de manutenção mais fácil. Ou seja, ao invés de precisar usar métodos mais específicos, você pode definir os comportamentos da propriedade direto na mesma, assim melhorando a legibilidade do código.

Visibilidade assimétrica

A nova versão 8.4 do PHP também introduziu o conceito de visibilidade assimétrica. Esse conceito permite que as propriedades de uma determinada classe tenham uma visibilidade diferente, tanto para leitura quanto para a escrita. Ou seja, uma propriedade pode ser pública para a leitura, mas pode ser privada para escrita. Dessa forma, a flexibilidade é útil em diversas situações, já que ela nos permite ter um controle maior sobre o acesso aos dados. Assim, colaborando na proteção da integridade do estado interno de determinado objeto, ao mesmo tempo que expõe uma parte das propriedades de forma segura. Esse recurso é muito importante para sistemas que precisam limitar algumas modificações externas, ainda permitindo a leitura dos valores.

Instanciação de classes sem parênteses

Nessa nova versão é possível instanciar classes diretamente, não sendo necessário nenhum parênteses. Isso simplifica ainda mais os códigos e torna a instanciação de objetos mais fluida. Já que, nas versões anteriores, quando você criava uma nova instância de uma classe, era obrigatório o uso de parênteses, mesmo quando não tinha argumentos à serem passados ao construtor. Por conta dessa mudança, ela facilita a leitura e a escrita dos códigos, especialmente nos casos mais simples, que as classes não precisam de parâmetros.

Funções arrays

Essa versão também melhorou a configuração de arrays, porque ela adicionou novas funções que tornam a coleção de dados mais eficiente. Algumas das funções adicionadas a linguagem são: array_find(), array_find_key(), array_all() array_any(). Essas funções permitem que o desenvolvedor faça buscas de forma mais intuitiva, verificando de maneira rápida se algum valor ou chave existe em um array ou se todos os elementos atendem uma determinada condição. Além disso, essas funções também oferecem um estilo de programação mais funcional, reduzindo a necessidade de loops explícitos e melhorando a legibilidade dos códigos.

Funções multibyte trim

O PHP 8.4 melhorou o tratamento de strings multibyte, como aquelas que são usadas para os idiomas que precisam de dois ou mais bytes para representar um caractere(ex: japonês e chinês).Sendo assim, as novas funções mb_trim(), mb_ltrim() mb_rtrim() conseguem remover os espaços em branco e os carácteres especiais  de forma mais correta e potente. Já que essas funções levam em conta os múltiplos bytes que são necessários para poder armazenar cada caractere. Assim, essas funções são uma melhora significativa para quem trabalha com strings que precisam de uma codificação mais complexa.

Suporte ao HTML5

Nessa nova versão do PHP foi levado em conta a manipulação de documentos HTML. Dessa forma, foi introduzido uma nova classe, a classe DomHTMLDocument. Já que, com ela você pode manipular os documentos HTML5 de uma maneira mais eficaz. Isto é porque, anteriormente, o DOM (Document Object Model) manipulava melhor documentos XML e HTML4. No entanto, agora ele suporta novas tags e estruturas semânticas que foram introduzidas no HTML5. Isso é bom porque ele facilita o trabalho dos desenvolvedores, que precisam interagir com a estrutura de páginas dinâmicas. Já que eles podem usar a capacidade do PHP para manipular e gerar HTML5 nativamente.

Quais recursos foram descontinuados?

Nessa nova versão, diversos recursos foram descontinuados para simplificar sua linguagem. Já que esses recursos eram considerados obsoletos ou não eram mais eficazes. Sendo assim, os principais recursos que foram descontinuados são:

Declaração de parâmetros implicitamente nulos

Na nova versão 8.4 do PHP, o suporte de parâmetros implicitamente nulos foi descontinuado. Já que, até a versão passada, você conseguia declarar parâmetros, de funções ou métodos, que aceitavam valores nulos implicitamente. No entanto, com a descontinuação desse recurso, você precisará declarar explicitamente o tipo de parâmetro como ?tipo para que valores nulos sejam aceitos. Dessa forma, o código fica mais claro e seguro, porque isso evita comportamentos inesperados.

Constante E_STRICT

A constante E_STRICT foi uma constante de erro que foi descontinuada nessa versão. Os criadores desenvolveram essa constante para avisar sobre códigos que poderiam ser problemáticos em versões futuras do PHP. Entretanto, com o passar do tempo, os desenvolvedores melhoraram e centralizaram esse tratamento de erros e avisos. Dessa forma, atualmente o PHP vai exibir esses alertas mais gerais por meio de outros tipos de erro, como o E_DEPRECATED. Assim, o E_STRICT perdeu a sua função, se tornando desnecessário e redundante.

Funções mysqli_ping() mysqli::ping()

A versão mais recente também descontinuou as funções mysqli_ping() mysqli::ping(). Os desenvolvedores usavam essas funções para testar a conexão com o banco de dados e, caso necessário, reiniciavam essa conexão. No entanto, essas funções já tinham perdido sua funcionalidade no PHP 8.2, já que nessa versão teve a remoção do recurso de reconexão automática. Sendo assim, nessa versão vai ser necessário que os desenvolvedores gerenciem essas conexões manualmente, até usando a lógica de conexão personalizada se necessário.

Funções mysqli_kill() mysqli::kill()

Sendo muito semelhante com as funções anteriores, as funções mysqli_kill() e mysqli::kill() foram descontinuadas nessa versão. Anteriormente, os desenvolvedores usavam essas funções para encerrar processos do MySQL, mas agora precisarão usar o comando SQL KILL diretamente no programa. Isto é porque esse comando, quando executado diretamente no banco de dados, oferece mais flexibilidade e precisão no gerenciamento dos processos.

Funções mysqli_refresh() mysqli::refresh()

A função mysqli_refresh() e a mysqli::refresh() também foram descontinuadas nessa nova versão. Isto é porque não se precisa mais delas para a maioria dos casos. Sendo assim, agora você precisará usar o comando SQL FLUSH, já que ele tem uma sintaxe mais consistente e controlada para limpar e recarregar o cache dos bancos de dados.

Uso de lcg_value()

A função lcg_value() era a função que gerava números aleatórios de pontos flutuantes, e ela foi descontinuada nessa versão. Isto é porque essa função era vista como limitada e não era garantida a aleatoriedade. Sendo assim, nessa versão será usado o Random\Randomizer::getFloat(). Já que ele oferece uma geração de números aleatórios mais segura e confiável.

Chamada de ReflectionMethod::__construct()

Outro recurso descontinuado nessa versão foi a construção de um objeto ReflectionMethod com um argumento único. Dessa forma, para criar um ReflectionMethod nessa versão, você precisa usar o createFromMethodName(). Isso simplifica o uso da reflexão no PHP e dá aos desenvolvedores uma forma mais intuitiva de conseguir informações  sobre os métodos de classes.

Como mudar para a nova versão PHP 8.4?

  1. Primeiramente, você vai precisar acessar o painel de controle da sua hospedagem.
  2. Em seguida, dentro do painel de controle, você vai acessar a aba Software e clicar em Selecionar versão do PHP.

    Representação da tela inicial do painel de controle e a localização da aba "Software" e da opção "Selecionar versão do PHP"
    Representação da tela inicial do painel de controle e a localização da aba “Software” e da opção “Selecionar versão do PHP”
  3. Logo depois disso, você só precisará selecionar a versão 8.4 e clicar no botão Aplicar. E pronto, você mudou o seu PHP para a nova versão dele!

    Representação do seletor de versão do PHP
    Representação do seletor de versão do PHP

Entretanto, caso você queira, você pode alterar a versão do PHP para qualquer outra da sua escolha. Embora tal versão não terá os recursos da nova versão PHP 8.4.

Conclusão

A chegada da versão 8.4 do PHP representa um grande avanço na sua linguagem. Trazendo novos recursos, que facilitam a codificação e aumentam a eficiência dos mesmos, como hooks de propriedade e visibilidade assimétrica, além de melhorias em arrays e suporte ao HTML5.Além disso, a descontinuação de recursos obsoletos reforçam práticas mais claras e seguras.

Sendo assim, nós recomendamos atualizar o PHP para essa versão. Já que, além de ser simples, melhora o desempenho e a produtividade das páginas web.

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *