Thiago Cantero

Tecnologia e Entretenimento

linguagem de programaçãoPHPProgramação

PHP 8.x – Novidades e aperfeiçoamento da linguagem

Olá, mundo!Tudo bem?

Já temos a versão 8.2 do PHP oficialmente lançada, eu por ser muito cauteloso, só uso em produções, versões que estão devidamente funcionais, pois assim como qualquer produto do mundo, devemos esperar algo que é novo, ter suas eventuais correções para termos segurança em sua implementação!Isso vale para tudo, em absoluto!Não apenas em Linguagens de Programação. E confesso que usei, para muitas coisas, a versão estável do PHP 7.4.x, que possuiu atualizações até o fim deste ano, no entanto de agora em diante, começarei a utilizar a versão 8.x.

Vamos ao Trabalho\\

 

Enums

Uma Função nova e interessante nesta nova roupagem do PHP é a listagem pela palavra reservada Enum, que compõe uma lista enumeradas, tendo como todos os atributos de classes, traits, namespaces e interfaces, vejamos um exemplo de manipulação básica do Enums:

<?php

enum CorLista  
{
 
  case Verde;
  case Amarelo;
  case Azul;
 
}
class Cores {

  public function nomeCor():CorLista{
    return CorLista::Amarelo;
  }
 
}
$cor = new Cores();
var_dump($cor->nomeCor());

Neste exemplo, temos uma classe Cores que retorna o valor de nossa lista enumerada, através do operador estático de escopo. Posteriormente, atribuímos uma varíavel $cor, instanciamos com a palavra reservada new e damos um var_dump para mostrar qual cor estamos atribuindo para nossa saída.

Com esta nova função na linguagem podemos incluir várias outras funcionalidades, como por exemplo, em uma classe de serviço de login, adicionar o nível de acesso na aplicação, dentre outras possibilidades. Deixando o código mais enxuto, limpo e de mais fácil manutenção, pois se utilizará uma função específica para cada finalidade, ao invés de usar um array, obtido de uma consulta de banco, como utilizamos as versões anteriores.

readonly

O PHP, através da versão 8.1, traz o suporte para propriedades de classe com somente leitura. Uma propriedade de classe declarada como somente leitura só pode ser inicializada uma vez, e outras alterações na propriedade não serão permitidas.

Vejamos o exemplo abaixo:

<?php
class Usuario {
    public readonly int $uid;

    public function __construct(int $uid) {
        $this->uid = $uid;
    }
}

$usuario = new Usuario(1);
$user->uid = 2; // Não será permitido, pois a função é apenas de leitura.

Com essa nova função, quando precisamos definir em uma classe um objeto que só teríamos métodos getters, através de funções, deixamos nosso código menos verboso com a palavra reservada readonly. Cabe ressaltar que essa função só aceita valores fortemente tipados!

Foi incluindo muitas outras funcionalidades, obviamente na nova versão que foi lançada agora em dezembro, a 8.2. No entanto Fibers, dentre outras funções são mais de usos de bibliotecas de frameworks, como utilizado em ORM, bibliotecas de alto disponibidade como OpenSwoole, enfim.

Na site Oficial do PHP, há uma série de publicações com exemplos, funções que foram ou irão ser descontinuadas, aconselho a visita. php.net

Como um bom entusiasta da linguagem, a qual utilizo desde 2004, vi sua evolução ao longo destes anos, e espero que agora com JIT Compiler, bibliotecas similares como a Python, para manipulação de datasets, IA, gráficos, como uma boa linguagem moderna, ampliando sua utilização além do desenvolvimento Web.

Espero que esta breve postagem trouxe novos conhecimentos, e lembre-se sempre leia as documentações, e se atualize seja qual for a stack que você usa para prover soluções.

É difícil libertar os tolos das amarras que eles veneram!