Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[ProjetoPHP] Faça como eu fiz: mantenha a consistência

  1. Crie um construtor para inicializar as propriedades e se livre dos setters;
  2. Faça com que as propriedades sejam criadas diretamente a partir dos parâmetros do construtor;
  3. Torne as propriedades readonly onde fizer sentido e, com isso, se livre dos getters também;
<?php

class Filme {

    private array $notas;

    public function __construct(
        private readonly string $nome,
        private readonly int $anoLancamento,
        private readonly Genero $genero
    ) {
        $this->notas = [];
    }
  1. Crie e utilize uma enum para definir o Generodo filme.
<?php

enum Genero {
    case Ação;
    case Comédia;
    case Documentário;
    case Terro;
}
1 resposta
solução!

Oii, Michael.

Parabéns por aplicar os conceitos de construtor, readonly e enums no seu projeto de Filme.

Sua implementação em PHP reflete exatamente o que foi proposto na aula. Ao utilizar a promoção de propriedades no construtor, você tornou o código muito mais limpo e direto.

O uso de readonly é uma excelente escolha para garantir a integridade dos dados, assegurando que informações como o nome ou o ano de lançamento não sejam alteradas indevidamente após a criação do objeto. Além disso, a enum para o gênero elimina a possibilidade de valores inválidos, o que traz mais segurança para a aplicação.

Para aprofundar seus conhecimentos sobre como o PHP lida com esses novos recursos, recomendo a leitura da documentação oficial sobre Enumerations e Constructor Property Promotion.

Conseguiu perceber como essas mudanças ajudam a prevenir erros que antes só seriam notados durante a execução do programa?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!