Skip to content
Programing

A Era "Boilerplate-Free": A Adoção em Massa dos PHP 8.4 Property Hooks

Published: Duration: 5:52
0:00 0:00

Transcript

Apresentadora: E aí, pessoal, bem-vindos de volta ao Allur! Eu sou a Juliana Santos e hoje o papo é de deixar qualquer desenvolvedor PHP com um sorriso de orelha a orelha. Sabe aquela sensação de abrir um arquivo de classe e ter que scrollar três páginas só de `public function getNome()` e `public function setNome()`? Pois é, parece que finalmente estamos enterrando essa era. A gente está vivendo o que o mercado está chamando de "Era Boilerplate-Free". Com a consolidação do PHP 8.4 e agora, em pleno 2026, olhando para trás, a gente vê como os Property Hooks e a Visibilidade Assimétrica não foram só "perfumaria", mas um divisor de águas total. Hoje a gente vai entender como isso limpou nosso código, como os grandes frameworks como Laravel e Symfony abraçaram essa ideia e por que você, se ainda não usa, está ficando para trás. E para destrinchar tudo isso, eu trouxe um convidado que manja muito de arquitetura. Apresentadora: Hoje eu recebo aqui no Allur o Rafael Costa. O Rafa é Arquiteto de Software sênior, já passou por grandes empresas de e-commerce e é um entusiasta de longa data da comunidade PHP. Ele acompanhou de perto essa transição do PHP 8.4 e ajudou a refatorar codebases gigantescas para esse novo padrão. Rafael, muito prazer ter você aqui, cara! Convidado: Oi, Juliana! Valeu demais pelo convite. É um prazer estar aqui no Allur. Olha, falar desse tema é gratificante porque, cara, a gente sofreu muito tempo escrevendo código repetitivo, né? Parece que a gente finalmente ganhou o superpoder de escrever o que importa e deixar a máquina cuidar do resto. É um momento muito massa para a nossa comunidade. Apresentadora: Com certeza! E Rafa, vamos começar do começo. Para quem ainda está meio perdido ou acabou de acordar de um coma tecnológico: o que raios são esses Property Hooks e por que eles mataram os getters e setters tradicionais? Convidado: Cara, imagina o seguinte: antigamente, se você queria que uma propriedade `$preco` fosse sempre formatada ou validada ao ser lida ou escrita, você era obrigado a criar um método `getPreco()` e um `setPreco()`. A propriedade em si virava `private`, e você enchia a classe de métodos. No PHP 8.4, o Property Hook permite que você anexe uma lógica diretamente na declaração da variável. Tipo, você declara a variável e já abre um escopo ali dentro com um `get => ...` ou um `set => ...`. Apresentadora: Nossa, 60% é muita coisa! É literalmente menos código para manter e menos bug escondido naquelas funções que a gente só copiava e colava. Mas tem outra coisa que veio no pacote e que eu achei genial, que é a Visibilidade Assimétrica. Explica pra gente como isso funciona na prática? Convidado: Putz, essa é a minha parte favorita! A Visibilidade Assimétrica resolve aquele dilema clássico do encapsulamento. Sabe quando você quer que todo mundo consiga ler uma informação, tipo o `$status` de um pedido, mas você só quer que a própria classe consiga alterar esse valor? Antigamente era: propriedade privada + getter público. Apresentadora: Massa! E a gente viu que isso não ficou só na teoria, né? O ecossistema abraçou com força. Como você viu o papel do Laravel e do Symfony nessa adoção em massa? Porque se o framework não ajuda, a galera demora a usar, né? Convidado: Exatamente, Ju. O papel dos frameworks foi crucial. O Taylor Otwell no Laravel e o Fabien no Symfony foram rápidos em dizer: "Galera, esse é o novo padrão". Quando saiu o Laravel 12 e o Symfony 7, as documentações já começaram a trocar os exemplos. Os geradores de código, tipo o `make:model` ou `make:entity`, pararam de cuspir aquela montanha de getters e setters e começaram a usar Hooks e Visibilidade Assimétrica por padrão. Apresentadora: Imagino a satisfação de dar aquele `git commit` deletando 2 mil linhas inúteis! Mas vem cá, Rafa, nem tudo são flores, né? Tem algum desafio ou algum lugar onde o pessoal está "exagerando" no uso dos Hooks? Porque o perigo de colocar lógica demais ali dentro existe, certo? Convidado: Com certeza, você tocou num ponto sensível. O perigo é transformar o Property Hook em um "mini-service". Já vi gente tentando fazer chamada de API ou consulta em banco de dados dentro de um Hook de `get`. Aí não, né! (risos). O Hook deve ser para lógica simples: uma formatação, uma validação básica de tipo, um cálculo rápido. Se você começa a colocar lógica de negócio pesada ali, você quebra o princípio da responsabilidade única e cria um pesadelo de performance, porque toda vez que acessar a variável, aquela lógica pesada roda. Apresentadora: Total! Parece que o PHP finalmente se livrou daquele estigma de "linguagem bagunçada" e virou uma Ferrari de produtividade. E olhando para o futuro, Rafa, agora que a gente já está em 2026 com isso tudo consolidado, o que você acha que é o próximo passo para o design orientado a objetos no PHP? Convidado: Eu vejo o PHP caminhando cada vez mais para a imutabilidade e para uma sintaxe funcional, mas sem perder a essência OO. O suporte para Value Objects e DTOs agora é de primeira classe. Eu acredito que as próximas versões vão focar ainda mais em padrões de "Data-First", onde a gente define a estrutura dos dados com quase zero de cerimônia. Apresentadora: Cara, que aula! Rafael, muito obrigada por compartilhar essa visão. É empolgante ver como a nossa ferramenta de trabalho evoluiu tanto. Para quem quiser se aprofundar, a gente vai deixar nos links do episódio algumas referências sobre a implementação dos Property Hooks e o guia de migração dos principais frameworks. Convidado: Valeu, Ju! Um abraço para todo mundo e bora codar sem boilerplate! Apresentadora: É isso aí! Nos vemos no próximo episódio. Tchau!

Tags

backend php laravel symfony modernization oop clean code