Chegou a hora de mudar para o PHP 7

Você é um desenvolvedor web ou administra algum site? Os seus sites são executados em PHP como WordPress, Drupal, Joomla ou Magento? Então eu tenho boas notícias para você: PHP já está na versão 7.1. O PHP 7 é maior lançamento dos últimos tempos e contém muitas características legais Nós decidimos dedicar um post inteiro a isso.

php7

1. O Nome do PHP 7 (Não 6)

O último lançamento estável usa a versão número PHP 5.6. Depois de algumas disputas, o time de desenvolvimento decidiu que eles não iriam usar o nome do PHP 6 para o lançamento seguinte. PHP 6 já existia no passado como um projeto experimental, mas nunca alcançou a fase de produção.

Para prevenir os usuários de misturarem a primeira tentativa com o último desenvolvimento, o novo lançamento teve o nome de PHP 7.

2. O Novo Motor Zend Engine

O motor Zend vem alimentando o PHP desde 1999, quando foi introduzido com o PHP 4. Zend – não confundir com o Zend framwork – é um motor de execução de fonte aberta escrita em C que interpreta a linguagem PHP. A atual série PHP 5.X usa Motor Zend II. Essa série melhorou a funcionalidade do motor e adicionou um modelo de objeto extensível. Além disso, uma melhora significativa da performance da linguagem também foi alcançada.

O PHP 7 recebeu uma nova versão do motor Zend que vem com o nome de PHP#NG (Next Generation)

3. Dobro Da Velocidade

A vantagem mais facilmente reconhecida do novo motor PHPNG é a significativa melhoria da performance. A equipe de desenvolvimento do Zend Engine refez o PHPNG e deixou o uso de memória notavelmente otimizado.

Os resultados? Você pode verificar a performance de benchmarks provido pelo time Zend abaixo. Com o PHP 7, o seu código vai precisar de menos servidores para servir a mesma quantidade de usuários.

wp-php7-performance

frameworks-php7-performance

4. Facilita o Tratamento de Erros

Para dizer o mínimo, manipular erros fatais e erros fatais retratáveis nunca foi tão fácil para os codificadores de PHP. As novas Engine Exeptions irão te permitir substituir esses tipos de erros com exceções. Se a expectativa não é encontrada, o PHP vai continuar a retornar os mesmos erros fatais como acontece na atual série 5.X.

O novo objeto de Engine Exeptions não estende a Exeption Class Base. Isso garante compatibilidade com versões anteriores; e resulta em dois tipos diferentes de exceções em manipular erros: tradicional e exceções de motores.

Para habilitar programadores a pegar ambos, PHP 7 introduz um novo Parent Class compartilhado com o nome de BaseException.

engine-exceptions

5. Suporte a Sistemas Windows de 64 Bits

PHP é um membro proeminente do LAMP, o que significa que seu ambiente nativo é Linux – mas também é possível o executar em um sistema Windows. As séries 5.X ainda não fornecem suporte de arquivo 64 bits, então até agora construção x64 tem sido considerada experimental.

PHP 7 irá mudar isso introduzindo um suporte nativo de 64 bits, o que significa que tanto os nativos de 64 bits como os arquivos grandes serão suportados, permitindo você a, sem erros, executar a linguagem no seu sistema Windows de 64 bits no futuro.

win-x64-support

6. Novos Operadores de Navegação Espacial e Null Coalesce Operator

O Spaceship operator é executado com o nome oficial de Operador de Comparação Combinado. A notação do novo operador parece com isso <=> (como uma espaçonave simplificada, se você imaginar corretamente).

O operador espacial retorna 0 se ambos operandos são iguais, 1 se o esquerdo é maior, e -1 se o direito é maior. Também é chamado de operador de comparação três-modos, e já existe em outra linguagem popular de programação, como Pérola e Ruby.

spaceship-operator

O operador de coalescência nula é denotado com dois pontos de interrogação ( ?? ). Você pode usa-lo quando quiser checar se algo existe e retornar um valor padrão, caso negativo. O operador de coalescência retorna os resultados da sua primeira operação se existir e não for nulo, e a segunda operação em qualquer outro caso.

Aqui está como o novo operador reduz o tempo gasto com declarações básicas:

null-coalesce-operator

7. Permite declarações de tipo precisas

Você já quis evitar valores de retorno não intencionais declarando o tipo de retorno de uma função? Bom, o novo PHP 7 habilita desenvolvedores a realçar a qualidade de seu código com a ajuda das declarações do tipo de retornos.

A imagem abaixo retrata um modo de usar muito fácil onde a função foo() deveria retornar um array.

return-type-declarations

Para realçar as características ainda mais, PHP 7 introduz 4 novos tipos de declarações para os scalar types: int, float, string e bool. O novo scalar types permite desenvolvedores a denotar que eles estão esperando que inteiros, flutuadores, cordas, ou booleanos sejam retornados. Os novos tipos de scalar introduzidos pelo PHP 7 também será suportado por argumentos de Digite Sugestões que permite desenvolvedores a forçar os tipos de parâmetros desde as séries do PHP 5.X.

8. Adiciona classes anônimas

PHP 7 permite que você use classes anônimas, uma prática já bem estabelecida em outra linguagem de objeto-orientado como C# e Java. Uma classe anônima é uma classe sem um nome. O objeto que instancia tem a mesma funcionabilidade de um objeto de uma classe nomeada.

A sintaxe é a mesma da qual nós usamos em classes tradicionais de PHP, só o nome está faltando. Se classes anônimas são bem usadas, eles podem acelerar a codificação assim como o tempo de execução. Classes anônimas são excelentes quando a classe só é usada uma vez durante a execução e em casos quando a classe não precisa ser documentada.

anonymous-classes

9. Facilita Importações a partir do mesmo espaço de nomes

A nova característica do Grupo de Uso de Declarações será godsent para aqueles de vocês que querem importar diversas classes do mesmo espaço. A nova sintaxe custa verbosidade, faz seu código mais arrumado e fácil nos olhos, e te salva de muito tempo digitando.

Será, também, mais fácil de ler entre e códigos de depuração, como grupos que usam declarações ajudam você a indentificar as importações que pertencem ao mesmo módulo.

group-use-declarations

10. Limpando a casa

A meta do PHP 7 foi de limpar o espaço para permitir progressos. Então foi necessário se livrar de várias funcionalidades obsoletas e servidores APIs e extensões antigas e sem suporte.

Todos os itens removidos foram descontinuados por um tempo no PHP 5, então possivelmente você não os usa por um bom tempo. Entretanto, por favor note se você tem um aplicativo legado funcionando em versões antigas do PHP. O novo PHP 7 pode potencialmente quebrar o código. Por isso teste o seu código antes do deploy!

clean-up