PHP 8: análise completa da versão

COMPARTILHAR:

PHP 8 é uma atualização importante para a linguagem de programação PHP, lançada em 26 de novembro de 2020. Mais recentemente, o PHP 8.1 foi lançado em 25 de novembro de 2021. E ainda mais recentemente em 17 de dezembro, PHP 8.1.1 .

Segundo a página oficial, esta versão mais recente contém várias novidades e otimizações. Neste post, vou falar sobre alguns dos novos recursos mais interessantes e detalhes sobre como começar. Mas antes disso, vamos falar um pouco sobre porque o PHP é uma linguagem muito especial.

O que torna a linguagem de codificação PHP fantástica?

Os desenvolvedores de PHP estão acostumados a lidar com piadas sobre serem desenvolvedores ruins, mas, felizmente, isso mudou recentemente. A verdade é que ser um bom desenvolvedor não depende das tecnologias, ferramentas ou linguagens que usamos. Em vez disso, ser um bom desenvolvedor resulta das qualidades, habilidades e experiência adquiridas ao fazer nosso trabalho corretamente.

De uma perspectiva de negócios, o PHP evoluiu significativamente. Muitas empresas estão usando a linguagem PHP para criar diferentes aplicativos. Como essas empresas estão constantemente atualizando suas versões de PHP, elas podem criar novos recursos e atingir seus objetivos de negócios com mais rapidez.

Um bom exemplo disso são os aplicativos PHP sem servidor. Gosto de pensar que uma das vantagens significativas de usar sem servidor é que nós, como desenvolvedores, podemos lançar código sem pensar em servidores. O modelo de execução baseado em nuvem está revolucionando o setor, embora não seja um conceito novo. Muitas empresas estão apenas começando a utilizar vantagens sem servidor, como modularização de aplicativos, escalabilidade, custos de servidor reduzidos, processo de implantação aprimorado, etc. Este parágrafo por si só pode fornecer material para outra postagem de blog destacando que o PHP não está morto, ao contrário do que algumas pessoas acreditam.

Hoje em dia, como desenvolvedores de PHP, temos a oportunidade de trabalhar com coisas legais. Frameworks como Laravel e Symfony mudaram a maneira como configuramos novos projetos. CMSs como o Drupal nos deram o poder de controlar nossa personalização de páginas de conteúdo, e outras contribuições feitas pela comunidade PHP abriram um mundo de oportunidades.

E isso não é tudo; hoje, estamos aproveitando a versão mais recente do idioma.

Pela minha experiência de trabalho com PHP durante anos, se eu tivesse que citar uma característica essencial da linguagem, diria que é a comunidade. A comunidade PHP é uma das comunidades mais calorosas e ativas hoje em dia, desde o criador Rasmus Lerdorf até aqueles que mantêm o núcleo da linguagem, pessoas envolvidas na criação e melhoria de frameworks, a documentação e as empresas que a usam e compartilham seus conhecimentos . É uma comunidade incrível e adoro fazer parte dela.

Agora, vamos entrar no PHP 8.

Primeiros passos com PHP 8

Se esta é sua primeira vez trabalhando com PHP, sorte sua! PHP 8 é uma excelente versão para começar. Algumas mudanças inovadoras foram introduzidas nesta atualização e irei descrever algumas delas. Continue lendo se estiver interessado em ingressar no mundo do PHP.

Se você tiver experiência com outra versão do PHP, precisará fazer algumas alterações em seu código para colocá-lo em execução. Será mais fácil se você estiver atualizando da versão 7, porque a maioria das alterações foram descontinuadas antes dessa versão.

CURSO GRATUITO DE DESENVOLVIMENTO WEB

Recomendações para a transição para PHP 8

  • Tente se familiarizar com a documentação.
  • Não resista às mudanças: com o passar do tempo, fica mais difícil.
  • Considere o esforço: isso vai depender de:
    • Sua versão atual. (como mencionado anteriormente)
    • O tamanho do seu aplicativo.
    • As prioridades do seu negócio.
  • Esteja ciente das vantagens.
  • Se você estiver trabalhando em um grande projeto:
    • Dividir e conquistar.
    • Dê passos de bebê.
  • Certifique-se de terminar o que começou.

Os novos recursos mais interessantes

Promoção de propriedade de construtor

Quem não gosta de ver menos linhas de código? Bem, com este RFC , uma sintaxe abreviada foi adicionada. Agora podemos combinar a especificação das propriedades da classe no construtor.

Antes, seu código era assim:

php 8

Agora pode ter a seguinte aparência:

php 8

Existem algumas restrições e especificações que você pode revisar na documentação oficial .

Novo em inicializadores

Agora podemos inicializar o valor diretamente na declaração da função:

php 8

Confira mais sobre essa melhoria na documentação oficial.

Tipos de União

Algumas vezes, como desenvolvedor PHP, eu queria usar uma variável mais “flexível”. Considerando a natureza dinâmica da linguagem, pode ser útil. Um “tipo de união” é uma coleção de vários tipos que indica que um desses tipos pode ser usado.

PHP 8 já suporta:

  • Digite ou nulo, usando a sintaxe ?Type especial
  • Array ou Traversable, usando o tipo iterável especial
php 8

No exemplo acima, o argumento de entrada pode ser do tipo Foo ou Bar, e a função retorna um int ou um float.

Existem algumas exclusões, especialmente com o tipo de vazio. Por favor, reveja a documentação oficial para mais informações.

Argumentos Nomeados

Este RFC permite passar argumentos para uma função com base no nome do parâmetro em vez da posição do parâmetro. Um benefício desse novo recurso é que agora você pode ignorar parâmetros opcionais, o que permite manter o código limpo e compreensível.

php 8
php 8

Versus:

php 8

Você pode ler sobre os benefícios, atributos e muito mais na documentação oficial .

CURSO GRATUITO DE PYTHON

Enumerações

Enums para resumir, este RFC nos permite definir uma nova estrutura muito parecida com uma classe que pode definir um grupo de valores permitidos, se você tiver tempo para usar PHP, provavelmente, usará constantes públicas para lidar com essa lógica. Esta nova opção evita erros durante o gerenciamento desses valores.

8

Uma variável pode ser atribuída a um desses valores legais, como este:

9

Você pode verificar a documentação oficial para mais exemplos e detalhes.

Compilador JIT

A sigla JIT significa “na hora certa”. JIT é um compilador que promete melhorias significativas de desempenho. Na web, você pode encontrar alguns posts documentados com testes feitos por desenvolvedores de PHP comparando processos com e sem JIT e, em alguns casos, eles conseguiram um aumento de desempenho dez vezes usando JIT.

Com este compilador, existem algumas novas oportunidades para desenvolvedores de PHP que não existiam antes, por exemplo, aprendizado de máquina, IA, etc. Para mim, isso parece promissor. Por outro lado, ao pensar em aplicativos da web, você deve saber que não há impacto significativo para você em usar o JIT no momento.

Fibras

“Na maior parte da história do PHP, as pessoas escreveram código PHP apenas como código síncrono. A execução de funções para até que um resultado esteja disponível para retornar da função, incluindo para operações de E / S, que podem ser bem lentas.”

Esse é o parágrafo inicial da documentação oficial sobre esta RFC que visa eliminar a distinção entre funções síncronas e assíncronas, permitindo que as funções sejam interruptíveis. Permite a criação de funções interruptíveis full-stack que podem ser usadas para implementar multitarefa cooperativa em PHP, também conhecidas como co-rotinas ou green-threads.

Este RFC pode nos fornecer material para uma nova postagem, irei apenas entrar em uma descrição geral a fim de nos familiarizar com ela.

Métodos que usam:

  • start()passe os argumentos para o que pode ser chamado e retornará o que quer que o método suspend() receba.
  • suspend()retorna qualquer valor que o método recebeu resume().
  • resume()ou throw()retorna qualquer que seja a próxima chamada recebida suspend().

As funções das fibras são assíncronas até que os freios sejam acionados, chamando suspend(). Isso passa o controle para “fora”, mas lembre-se de que essa função ainda está ativa esperando para ser reiniciada.

Exemplo básico de inicialização:

10

Verifique a documentação oficial para mais detalhes e exemplos.

hostinger banner

Outras melhorias que chamaram minha atenção

O PHP 8 adicionou mais alguns avisos e mudou outros para exceções, por exemplo:

  • Aviso para cancelar a referência de objetos nulos e matrizes

Quando tento acessar uma chave dentro de uma matriz nula, o PHP 8 mostra “Aviso: Tentando acessar o deslocamento da matriz no valor do tipo nulo”.

Em referências de objeto, mostra Attempt to read property {foo} on nullo mesmo aviso que aparece se tentarmos acessar uma propriedade em um objeto nulo.

  • Novos Erros

No PHP8, TypeError e ValueError foram introduzidos. Com essas exceções, tipos e validações de valor foram aplicados. A vantagem significativa dessa aplicação é que agora podemos descobrir bugs antecipadamente.

Pensamentos adicionais

Se você está pensando em atualizar sua versão do PHP, faça-o com segurança; não se esqueça de visitar a lista de mudanças importantes no documento de atualização .

Lembre-se de que o nível de complexidade varia de acordo com a versão do PHP que você está atualizando. Se você estiver atualizando de uma versão superior à versão 7, pode ser mais simples.

Conclusão

Aqui, mencionei apenas alguns dos muitos recursos da atualização mais recente do PHP. Se este post chamou sua atenção e você deseja escolher seus recursos favoritos, visite a documentação oficial para se familiarizar com todos eles.

Lembre-se de que a indústria de tecnologia está em constante evolução. Como engenheiros de software, devemos estar cientes do que pode tornar nosso trabalho mais fácil. As atualizações geralmente são uma delas. Espero que este post seja útil para quem tem interesse em começar a usar PHP ou que já tem um carinho especial por ele.

O melhor curso de PHP é esse no link, boas aulas se você deseja aprender a linguagem.

COMPARTILHAR:
brayan

Brayan Monteiro

Bacharel em Sistemas de Informação pela Faculdade Maurício de Nassau e desenvolvedor PHP. Além de programador, produzo conteúdo e gerencio blogs. Sou especialista em desenvolvimento de software, SEO de sites e em negócios digitais.