Artigos do Blog

Conteúdo novo todos os dias!

Guias e Tutoriais

Tutoriais para sua auto-ajuda

Área de Suporte

Tickets para chamado técnico

Análise Hostec do PHP 7.3 e suas novidades

Nesta análise da versão 7.3 do PHP, estaremos citando as melhorias de desempenho e segurança que foram aplicados nessa atualização. Como você já deve saber, o PHP já está ganhando forças novamente e a comunidade está a todo vapor para melhorar a sintaxe da linguagem, bem como a performance.

A versão 7.3 do PHP chegou com tudo, e o melhor de tudo é que agora está com diversos recursos para ajudar os desenvolvedores. Nessa versão, teremos novas funcionalidades, melhoria no desempenho, algumas depreciações e um bom número de correções de erros.

Continue lendo este artigo para acompanhar os levantamos das principais alterações para que você fique por dentro de tudo antes de atualizar seu servidor, leia até o final para saber das novidades.

Caso você ainda não tenha uma hospedagem de sites com a versão 7.3 do PHP disponível. Clique aqui e faça um teste gratuito durante 30 dias dos serviços de hospedagem de sites PHP da Hostec.

Análise Hostec do PHP 7.3 e suas novidades

Atribuições de referências em list()

O PHP já tem a atribuição de list() e a atribuição por referência há bastante tempo. Contudo isso já operando, até agora não era possível usar a atribuição de referência com list(). A nova versão 7.3 do PHP vem trazendo uma sintaxe nesta atualização que permite isso.

É interessante pensar que as solicitações para esta implementação são de quase 20 anos..

A nova sintaxe ficou da seguinte forma:

$array = [1, 2];
list($a, &$b) = $array;[/php]

Que é equivalente a fazer:

[php]$array = [1, 2];
$a = $array[0];
$b =& $array[1]

Essa nova abordagem também será possível usar em listas aninhadas, como você pode ver a especificação completa na documentação oficial do PHP.

Lançamento de exceção de erros em json_encode e json_decode

Atualmente, o PHP tem duas funções para lidar com JSON: json_decode () e json_encode(), porém, nenhuma delas tem tratamento para erros ideal.

O json_decode() retorna NULL dá erro, mas NULL também é um resultado válido se decodificar o JSON “null”. E só é possível saber se ocorreu algum erro chamando json_last_error() ou json_last_error_msg(), que retorna o estado de erro global.

Contudo, simplesmente alterar o comportamento padrão dessas funções para lançar exceção poderia ser um problema muito grande de compatibilidade com versões anteriores.

Na versão 7.3 do PHP, teremos a adição de uma nova flag (JSON_THROW_ON_ERROR) de opção para json_decode(). Quando passado essa flag, o comportamento de erro dessas funções é alterado. O estado de erro global não é modificado e uma exception do tipo JsonException é lançada.

Função is_countable()

Na versão 7.2 do PHP foi adicionado um Warning ao tentar contar objetos incontáveis e, a partir disso, todos devs foram forçados a procurar e alterar seu código para evitar esse Warning. Um código parecido com o seguinte começou a ser utilizado para evitar este Warning:

if (is_array($foo) || $foo instanceof Countable) {
return count($foo);
}[/php]

Então foi implementado a criação de um método que retorne TRUE ou FALSE para indicar se um objeto é contável ou não. A sintaxe ficou da seguinte forma:

[php]if (is_countable($foo)) {
// $foo é countable
}

Outros exemplos podem ser encontrados na Wiki oficial do PHP.

Flexibilidade na sintaxe para o Heredoc e Nowdoc

As sintaxes rígidas do heredoc e nowdoc faz com que eles sejam evitados pelos desenvolvedores, pois seu uso pode parecer feio e prejudicar a legibilidade. Sendo assim, foi implementado duas alterações às atuais sintaxes heredoc e nowdoc para melhorar as questões:

Permitir que o marcador de fechamento seja endentado;

Remover o novo requisito de linha após o marcador de fechamento

Por exemplo:

Anteriormente, o código precisava ser:

<?php
class foo {
public $bar = <<<EOT
bar
EOT;
}

E agora pode ser (detalhe para a indentação):

<?php
class foo {
   public $bar = <<<EOT
   bar
   EOT;
}

Outras mudanças foram feitas na sintaxe, como a necessidade de quebrar a linha após o marcador de fechamento. Todas as mudanças feitas nessa função podem ser conferidas diferentemente na RFC do PHP.

A nova versão do PHP também traz outras funcionalidades, correções de bugs e também a depreciação de alguns métodos. A lista dos métodos que serão removidos em futuras versões você pode encontrar neste link.

Trailing comma em chamadas de função e método

Permitir uma “vírgula à direita” em chamadas de função torna mais conveniente acrescentar argumentos em contextos que é comum acionar funções com muitos argumentos. Muito útil para o VCS (GIT, TFS, SVN, CVS etc), pois as linhas individuais na lista podem ser modificadas, adicionadas ou removidas sem precisar tocar em linhas não relacionadas que estejam no final da lista.

Isso significa que inserir parâmetros adicionais às chamadas vai evitar tocar na linha anterior para adicionar uma nova vírgula, o que é ruim para o histórico do controle de versão. Alguns exemplos do uso dessa nova sintaxe:

Inicializando um array

$foo = [
'foo',
'bar',
];

Chamando um método

unset(
$foo,
$bar,
$baz,
);

Passando parâmetros para um template engine

echo $twig->render(
'index.html',
compact(
'title',
'body',
'comments',
)
);

Mais exemplos de uso podem ser encontrados na Wiki oficial do PHP.

Em conclusão final.

A maior parte dos servidores de hospedagem já estão preparando para receber a nova versão em seus servidores Cpanel, e nós da Hostec não ficamos pra trás. A partir de janeiro de 2020 todos os clientes poderão atualizar a versão do PHP dentro do Painel de Controle da sua hospedagem, e se você ainda não é cliente aqui da Hostec, clique no link abaixo para conhecer um pouco mais sobre os nossos serviços.

0Shares

Deixe um comentário

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

Tem artigo novo todos os dias!

Conheça todos os conteúdos do nosso blog

Todo o conteúdo deste site é de uso exclusivo da Hostec – Soluções Digitais. Sendo proibida a reprodução ou utilização de qualquer título, sob as penas da lei brasileira de N° 9.279.
CNPJ/MF: 36.659.609/0001-14

Banner de Consentimento de Cookies by Real Cookie Banner