Os recursos novos e aprimorados do PHP 7.2.0

Publicados: 2018-03-03
A nova versão do PHP 7.2.0 inclui muitas adições excelentes. Ele oferece mais recursos, novas melhorias e melhor funcionalidade. Ele permite que o usuário escreva um código melhor e use vários recursos de linguagem interessantes como nunca antes. Neste post, veremos os aspectos mais recentes introduzidos na última iteração do PHP.


A atualização oferece muitas novas melhorias. Ele vem com muitos recursos que garantem uma melhor codificação. Os novos recursos do PHP 7.2.0 incluem:

  • Dica de digitação de objetos
  • Contagem de vários objetos não contáveis
  • Conversão de chaves numéricas em matrizes/objetos
  • Extensão Mcrypt removida
  • Argon2 em hash de senha
  • HashContext como objeto
  • Melhores constantes TLS para vários valores sãos
  • Nova extensão de sódio

Como sabemos, os desenvolvedores web geralmente amam ou odeiam usar a linguagem PHP. Qualquer um que realmente goste de usar PHP vai adorar esta nova solução de codificação.

Se você é um desenvolvedor web que gosta de trabalhar com PHP, continue lendo enquanto discutimos os novos recursos mais importantes da atualização do PHP 7.2.0.

Principais melhorias no PHP 7.2.0

Aqui estão algumas das principais melhorias na última atualização do PHP.

A solução para o bug de propriedades de traços

Até o lançamento do PHP 7.2.0, havia um bug de propriedade trait não corrigido. Na atualização mais recente, se uma característica define uma propriedade, uma classe não pode definir uma propriedade com o mesmo nome, a menos que seja mais compatível (mesmo valor inicial e visibilidade). Caso contrário, ele emite um erro fatal.

Assim, diferentemente do PHP 7 e PHP 7.1, agora podemos esperar receber um erro fatal. Este comportamento foi corrigido na recente atualização do PHP, e agora está funcionando como diz na documentação do PHP. Agora você pode fazer uma comparação rigorosa. Ao executar o script no PHP 7.2, você será notificado de um erro fatal.

Declaração de tipo de devolução

A recente atualização do PHP 7 adiciona suporte adicional para declarações de tipo de retorno. Assim como as declarações de tipo de argumento, esse tipo de declaração também indica o tipo do valor que provavelmente retornará de uma função. Para declaração de tipo de retorno, os mesmos tipos são oferecidos como são para declarações de tipo de argumento.

No PHP 7.2.0, um usuário está habilitado para usar a declaração de tipo de retorno em termos de tipo de dados do objeto.

Além disso, a tipagem estrita também causa impacto nas declarações de tipo de retorno. Considerando o modo fraco padrão, todos os valores retornados são coagidos para o tipo exato (no caso de serem diferentes e ainda não serem desse tipo). No entanto, no modo forte, todos os valores retornados devem ser do tipo exato/correto. Caso contrário, um TypeError é recebido.

No entanto, um método filho deve corresponder à declaração do tipo de retorno com a do método pai quando você substituir um método pai. Mas se um tipo de retorno não for definido pelo método pai, um método filho poderá defini-lo.

Expressões de retorno do gerador

Esse recurso do PHP é construído sobre uma funcionalidade lançada no PHP 5.5 chamada funcionalidade do gerador. Ele permite que uma instrução return seja utilizada no gerador e que a expressão final seja retornada. No entanto, o retorno por referência é restrito. O valor pode ser obtido usando um novo método Generator " getReturn()" que é usado apenas quando o gerador termina de gerar valores.

No entanto, a capacidade de retornar claramente um valor final usando um gerador é definitivamente uma habilidade útil de se possuir. Isto porque permite que um valor final seja devolvido integralmente, por um gerador, que pode ser particularmente tratado por um código cliente que executa o gerador. Em comparação, isso é muito mais simples do que forçar um código de cliente a verificar primeiro se o valor final é gerado ou não e, em seguida, lidar com o valor particularmente.

Opções de sessão

Session_start() agora reconhece muitas opções que substituem as várias diretivas de configuração de sessão definidas no php.ini.

Essas opções também foram expandidas para facilitar o session.lazy_write, que permanece ativado por padrão e faz com que o PHP sobrescreva qualquer arquivo de sessão apenas com a alteração dos dados da sessão e read_and_close . Esta é uma opção que só é passável para session_start() para confirmar que os dados da sessão devem ser lidos e, em seguida, a sessão deve ser imediatamente fechada enquanto permanece inalterada.

Melhorias de segurança no PHP 7.2.0

Aqui estão as recentes melhorias de segurança implementadas no PHP 7.2.0.

Algoritmo Argônio 2 em Hash de Senha

O Argon 2, vencedor do Password Hashing Competition em 2005, é um algoritmo de hash forte. O Argon2 está prestes a ser reconhecido como o padrão universal da Internet. Atualmente, o algoritmo é considerado mais econômico e seguro do que o Bcrypt, outro algoritmo de hash. O recém-incorporado Argon2 pode ser usado através da função – password_hash().

Enquanto o Bcrypt leva em conta apenas um fator de custo, o novo Argon2 leva em consideração os seguintes três fatores de custo:

  1. Um custo de tempo - define os números das iterações do algoritmo de hash
  2. Um custo de memória define os números KiB que devem ser usados ​​durante o hash.
  3. Um fator de paralelismo define o número de threads paralelos que serão consumidos durante o hash.

Os fatores de custo padrão são definidos pelas três novas constantes da seguinte forma:

  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2-DEFAULT-THREADS
Lib-sódio substitui o Mcyrpt

Outra grande melhoria no PHP 7.2.0 é a remoção da biblioteca criptográfica convencional Mcrypt do núcleo do PHP e a adição do Libsodium.

Mcrypt foi considerado abandonware e uma restrição ao crescimento do idioma. É por isso que foi substituído pelo Libsodium no PHP 7.2.0. Libsodium é uma biblioteca de criptografia avançada que fornece criptografia autêntica juntamente com criptografia de curva elíptica eficiente.

O Libsodium é composto por algoritmos cuidadosamente escolhidos que são implementados por especialistas em segurança para evitar vulnerabilidades de canal lateral. Em outras palavras, o Libsodium é uma biblioteca multilíngue e multiplataforma para descriptografia, criptografia, hash de senha, assinatura e muito mais.


Recursos e funções obsoletos

A seguir estão algumas das funções e recursos obsoletos do PHP 7.2.0 que devem ser removidos antes do lançamento do PHP 8.0.

Gmp_random() é considerado um recurso dependente da plataforma e provavelmente será obsoleto. Em vez disso, gmp_random_rage() e gmp_random_bits() serão usados.

(unset) o cast é outra expressão que geralmente retorna null e, portanto, é considerada inútil.

Each() é utilizado para iterar sobre um foreach() como um array, mas foreach() é preferido por causa de sua velocidade mais alta.

O spl_autoload_register no PHP 5.1 substituiu a função _autoload . Mas agora é provável que a depreciação ocorra quando a função for encontrada durante a compilação.

mbstring .fucc_overload também foi definido para descontinuação.

A função assert() confirma a asserção dada e toma as ações adequadas se houver um resultado FALSE . O uso de assert() com argumentos de string será preterido porque causa uma vulnerabilidade RCE.

A variável $php_errormsg é construída no escopo local enquanto um erro não fatal é recebido. Mas agora, com os lançamentos do PHP 7.2.0, error_clear_last e error_get_last serão usados.

O $errcontext provavelmente ficará obsoleto, pois essa funcionalidade está causando problemas de otimização. Como o $errcontext é usado para modificar todos os objetos e referências no escopo atual, essa funcionalidade dificilmente é usada.

Create_function() tem muitos problemas de segurança. Além disso, também possui problemas de uso de memória e desempenho ruim.

Por que um desenvolvedor do WordPress deve usar o PHP 7.2.0?

As recentes atualizações do PHP trazem novos recursos e medidas de segurança aprimoradas. Isso pode incluir fatores como criptografia moderna, adições aos principais recursos e velocidade de carregamento mais rápida para vários sites.

Benefícios de usar PHP

PHP é uma linguagem altamente compatível que pode ser usada com quase todos os padrões globais de banco de dados e servidor (ou seja, PostgreSQL, MySQL, Sybase, Oracle, Microsoft SQL Server e Informix). Ele oferece desempenho rápido apoiado por uma comunidade de código aberto.

Ele é usado para uma variedade de propósitos, como gerar arquivos e páginas dinâmicas. O PHP permite que você gerencie e armazene informações em um banco de dados do site. Ele permite que os usuários criptografem dados usando recursos de segurança e restringe o acesso não autorizado a sites.

PHP é usado por muitos sites de renome, como Yahoo, Facebook e Wikipedia.

Ainda mais importante, a atualização mais recente do PHP 7.2.0 oferece importantes melhorias de segurança, novos recursos interessantes e aprimoramentos de desempenho.

O desempenho do PHP 7.2.0

De acordo com os benchmarks da Phoenix, o PHP 7.2.0 é 13% mais rápido que o 7.1 e quase 20% mais rápido que o 7.0. Comparado ao PHP 2.6 (ainda usado por 40% dos usuários de PHP), é quase 25% mais rápido.

Existem muitos testes que suportam essas estatísticas e descobertas. O benchmark oficial do PHP revela que o PHP 7 é duas vezes mais eficiente e duas vezes mais rápido que o 5.6. PHP 7 tem metade da latência. Além disso, outros benchmarks como Kinsta sugerem que o PHP 7 pode ser até três vezes mais rápido que as versões anteriores.

Como discutido acima, a principal razão para o desempenho aprimorado do PHP 7.2.0 é a inclusão de recursos avançados e descontinuações de funções antigas. É exatamente isso que torna esta versão do PHP perfeita para usuários do WordPress. No entanto, os desenvolvedores devem verificar o código e atualizar as funções obsoletas para garantir que tudo seja compatível.

O suporte de segurança do PHP 7.2.0

O PHP 7.2.0 não oferece mais suporte de segurança. No entanto, o suporte crítico ainda estará disponível até o final de 2018. A comunidade PHP não oferece mais suporte para pequenos problemas e bugs. A boa notícia é que a atualização mais recente do PHP 7.2.0 garantirá que as atualizações de segurança avançadas funcionem corretamente, e o projeto será continuamente suportado pela comunidade PHP.

Libsodium é o recurso mais importante e aprimorado que migrou do PHP mais antigo para o PHP 7.2.0. Felizmente, o Libsodium é muito fácil de atualizar.

Se você planeja atualizar para o PHP 7.2.0, certifique-se de que seu código seja composto de integração e testes de unidade. Esses testes ajudarão a detectar qualquer problema relacionado ao aplicativo antes que ele apareça como um bug em um ambiente ativo.

Em poucas palavras
O PHP 7.2.0 é definitivamente uma grande atualização em comparação com as versões anteriores, como o PHP 5.6. Ao atualizar o código do PHP 5.6 para o PHP 7, você pode encontrar algumas incompatibilidades, tanto nas bibliotecas das quais o código depende quanto no próprio código. No entanto, os benefícios de adotar o PHP 7.2 farão seus esforços valerem a pena.

Como o PHP 7.2 é muito mais rápido que as versões mais antigas do PHP, isso permite que o usuário ofereça um serviço aprimorado aos usuários do site implementando os códigos avançados da linguagem PHP.

Então você está pronto para mudar para o novo PHP 7.2? Se você ainda não o atualizou, é um bom momento para iniciar sua transição. É hora de verificar os códigos e atualizar seus scripts.

Deixe-nos saber como você encontrou os novos recursos e funções aprimorados do PHP 7.2.0 na seção de comentários abaixo!