Promoção no ar
Tempo restante da oferta:
18 Horas
15 Min
25 Seg
Assinar →

Declarando propriedades no construtor PHP

Aprenda como declarar propriedades e atribuir diretamente no construtor, recurso também conhecido como promoção de propriedades, disponível a partir do PHP8.

Elton Fonseca 6 anos atrás

Neste post vamos aprender como declarar propriedades no construtor PHP, recurso também chamado de promoção de propriedade que pode ser usado a partir da versão 8 da linguagem PHP.

Curso PHP - Novidades do PHP 8.0 Conhecer o curso

O que é promoção de propriedade

A promoção de propriedade consiste basicamente em realizar 3 ações de forma automática na declaração do construtor de uma classe:

  • Declara as propriedades na classe;
  • Recebe os valores que serão definidos;
  • Atribui esses valores a propriedade da classe.

Isso evita que nossas classe tenham uma série de linhas para realizar uma tarefa simples.

Qual utilidade prática da promoção de propriedades no PHP

Na prática, a promoção de propridade nos permite declarar e atribuir valores a propriedades de uma classe usando bem menos linhas. Isso é muito interessante, pois muitas classes precisam realizar esta tarefa, principalmente pelo uso da injeção de dependência.

Veja o exemplo abaixo, uma classe que possui 2 propriedade, só a parte de declaração e atribuição via construtor ocupa 21 linhas de código:

<?php

namespace Cliente\Actions;

use Cliente\Tasks\GeraToken;
use Cliente\Tasks\CadastraUsuario;

class CadastraCliente
{
    /**
     * Propriedade da task cadastrar usuario
     */
    private CadastraUsuario $cadastraUsuario;

    /**
     * Propriedade da task gerar token
     */
    protected GeraToken $geraToken;

    /**
     * @param CadastraUsuario $cadastraUsuario
     * @param GeraToken $geraToken
     */
    public function __construct(
        CadastraUsuario $cadastraUsuario, 
        GeraToken $geraTokenTask
    )
    {
        $this->cadastraUsuario = $cadastraUsuario;
        $this->geraToken = $geraToken;
    }
}

O exemplo acima possui apenas duas propriedades. Em classes que precisam declarar e receber valores em várias propriedades, a quantidade de código antes do primeiro método fica bem grande.

Sintaxe para declaração de propriedades no construtor PHP

A promoção de propriedades torna o código muito mais simples e legível. O mesmo código do exemplo anterior pode ser definido do seguinte modo:

<?php

namespace Cliente\Actions;

use Cliente\Tasks\GeraToken;
use Cliente\Tasks\CadastraUsuario;

class CadastraCliente
{
    /**
     * @param CadastraUsuario $cadastraUsuario
     * @param GeraToken $geraToken
     */
    public function __construct(
        private CadastraUsuario $cadastraUsuario, 
        protected GeraToken $geraToken
    ) {}
}

Basicamente única coisa que precisamos é declarar a visibilidade da propriedade na hora de definir o parâmetro no construtor. Desse modo ele já realiza todo o processo, tornando o código muito mais limpo.

Formação Desenvolvedor PHP Júnior Conhecer a formação

Considerações Finais

Recursos que permitem escrever código mais limpo, como é o caso da promoção de propriedades e recursos que aumentam a legibilidade do código, como é o caso dos parâmetros nomeados no PHP são extremamente importantes. Apesar de serem recursos extremamente novos, em breve devem se tornar padrão na maioria dos projetos.

Continue lendo

Artigos relacionados

Um ano de acesso total para você viver de programação.

Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro console.log ao mercado de trabalho.

  • 1 ano de acesso a todos os cursos
  • Cursos novos toda semana
  • Suporte direto com professores
  • Plano de carreira personalizado
  • Certificados digitais inclusos
  • Aplicativos para Android e iOS, com acesso offline
Garantia incondicional de satisfação

Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

Acesso completo a todos os cursos e dezenas de Formações.

12 meses
Economize R$ 840,00 54% OFF

de 12x R$ 129,00 por apenas

12x R$ 59,00

sem juros no cartão de crédito ou R$ 599,00 à vista

Oferta termina em 18h 15min 25s

  • Acesso imediato e ilimitado durante 1 ano.
  • Plano de carreira personalizado.
  • Suporte direto com professores.
  • E muito mais!
Matricule-se agora