PHP 8.4 é lançado com Property Hooks, Class…

PHP 8.4 é lançado com Property Hooks, Class...

A equipe do PHP lançou hoje o PHP 8.4 com novas funções de localização de array, ganchos de propriedade, instanciação de classe sem parênteses extras e muito mais:

Veja o PHP 8.4 RFC página para uma lista completa.

Novas funções de localização de array

O PHP 8.4 virá com novas funções de localização de array que incluem:

  • array_find()
  • array_find_key()
  • array_any()
  • array_all()

Veja nosso post sobre funções de localização de array do PHP 8.4.

Ganchos de propriedade PHP

Os ganchos de propriedade são inspirados em linguagens uma vez que Kotlin, C# e Swift, e a sintaxe inclui duas variantes de sintaxe que se assemelham a fechamentos curtos e de várias linhas:

class User implements Named

{

private bool $isModified = false;

 

public function __construct(

private string $first,

private string $last

) {}

 

public Sua visita nos ajuda a continuar oferecendo o melhor para você! style="color: #D73A49;">string $fullName {

// Override the "read" action with arbitrary logic.

get => $this->first . " " . $this->last;

 

// Override the "write" action with arbitrary logic.

set {

[$this->first, $this->last] = explode(' ', $value, 2);

$this->isModified = true;

}

}

}

Os ganchos de propriedade ajudarão a remover o clichê de getters e setters de propriedades, permitindo que uma propriedade defina entrada e atualizações usando ganchos.

Confira nosso post para mais detalhes: Property Hooks no PHP 8.4.

new MyClass()->method() sem parênteses

Uma vez que o entrada de membro durante a instanciação foi introduzido, você deve agrupar o new MyClass() chame entre parênteses ou você receberá um erro de estudo. A sintaxe proposta permitiria acessar constantes, propriedades e métodos sem os parênteses extras:

// Wrapping parentheses are required to access class members

$request = (new Request())->withMethod('GET')->withUri('/hello-world');

 

// PHP Parse error (<= PHP 8.3): syntax error, unexpected token "->"

$request = new Request()->withMethod('GET')->withUri('/hello-world');

Esta atualização corrige o papercut que simplifica o trabalho com o entrada aos membros da classe, sem a urgência de juntar parênteses ou usar um método construtor estático. Essa mudança de sintaxe também coloca o PHP mais desempenado com outras linguagens C uma vez que Java, C# e TypeScript, que não requerem parênteses entre parênteses.

Confira nosso post para mais detalhes: Instanciação de classe sem parênteses extras no PHP 8.4.

Crie um DateTime a partir de um timbre de data/hora Unix

Criando um DateTime de um timestamp Unix será mais profíquo no PHP 8.4, com o novo createFromTimestamp() método. Ele suportará um timbre de data/hora típico do Unix, muito uma vez que carimbos de data/hora contendo microssegundos:

$dt = DateTimeImmutable::createFromTimestamp(1718337072);

$dt->format('Y-m-d'); // 2024-06-14

 

$dt = DateTimeImmutable::createFromTimestamp(1718337072.432);

$dt->format('Y-m-d h:i:s.u'); // 2024-06-14 03:51:12.432000

Nas versões anteriores do PHP, existem algumas maneiras de fabricar uma instância DateTime a partir de um timbre de data/hora, uma vez que o createFromFormat() método:

$dt = DateTimeImmutable::createFromFormat('U', (string) 1718337072);

// DateTimeImmutable @1718337072 {#7948

// date: 2024-06-14 03:51:12.0 +00:00,

// }

 

$dt = DateTimeImmutable::createFromFormat('U.u', (string) 1718337072.432);

// DateTimeImmutable @1718337072 {#7950

// date: 2024-06-14 03:51:12.432 +00:00,

// }

Novas funções mb_

O PHP tem as funções trim, ltrim, rtrim, ucfirst e lcfirst há muito tempo, e agora no PHP 8.4 ele adiciona mb_suporte a strings multibyte para essas funções.

  • mb_trim()
  • mb_ltrim()
  • mb_rtrim()
  • mb_ucfirst()
  • mb_lcfirst()

Todos eles carregam os mesmos argumentos das funções originais. Essas funções são de dois RFCs separados: rfc:mb_trim e rfc:mb_ucfirst.

Visibilidade de propriedade assimétrica

A partir do PHP 8.4, as propriedades também podem ter sua visibilidade definida de forma assimétrica com um escopo dissemelhante para leitura e escrita. Cá está um exemplo do documentação:

class Book

{

public function __construct(

public private(set) string $title,

public protected(set) string $author,

protected private(set) int $pubYear,

) {}

}

 

class SpecialBook extends Book

{

public function update(string $author, int $year): void

{

$this->author = $author; // OK

$this->pubYear = $year; // Irremissível Error

}

}

 

$b = new Book('How to PHP', 'Peter H. Peterson', 2024);

 

echo $b->title; // How to PHP

echo $b->author; // Peter H. Peterson

echo $b->pubYear; // Irremissível Error

Confira nosso post para mais detalhes: Visibilidade de propriedade assimétrica no PHP 8.4.

Laravel Herd já suporta 8.4

Se você está procurando uma maneira fácil de inaugurar a usar o PHP 8.4, Rebanho Laravel já inclui suporte e você pode mudar para ele com muita facilidade.

PHP 8.4.1 está cá! 🎉

Um clique para explorar todos os novos recursos do Laravel Herd

[image or embed]

— Marcel Pociot (@marcelpociot.bsky.social) 21 de novembro de 2024 às 5h16

Saber mais

Para se atualizar sobre esses novos recursos, confira o PHP 8.4.0 Proclamação de lançamento página para exemplos antes/depois do PHP 8.4. Certifique-se de verificar as descontinuações e quebras de compatibilidade com versões anteriores.

A lista de recursos adicionais a seguir contém tudo que você precisa para saber mais sobre esta versão:

  • O ATUALIZAÇÃO O documento inclui alterações incompatíveis com versões anteriores, novos recursos e tudo mais que você precisa para se familiarizar com as mudanças no PHP 8.4
  • O NOTÍCIAS documento contém notas detalhadas sobre cada versão
  • O Tarefas de preparação do PHP 8.4 página tem o cronograma de lançamento dos próximos lançamentos
  • Você pode subtrair o código-fonte do PHP 8.4 no site página de downloads

Tags:

Crédito: Manancial Original

Adriano Pina

Adriano Pina

Análise de Sistemas | SEO e Google Ads | Fundador da Loja Script PHP Aqui & Marca Shoslh de tecnologia

Especialista em transformar ideias em soluções digitais e acelerar o crescimento online.

Deixe um comentário

Tem perguntas? Nos envia sua mensagem 24/7!

(17) 99100-0874

Endereço & Contato

Centro, Interior de São Paulo
E-mail: [email protected]

Links Úteis
BAIXAR APP | SCRIPT PHP AQUI
Certificados
0
    0
    Seu carrinho
    Seu carrinho está vazio

    Usamos cookies para garantir que oferecemos a melhor experiência em nosso site. 

       

    X

    Clique em um de nossos representantes abaixo para conversar no WhatsApp ou envie um email para: 📧 [email protected]

    Precisa de ajuda fale conosco?