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

Essa de sem getter and setter é muito ruim de aplicar

Professor, sei que muitas regras/ideias de organização do código são constrastantes e depende muito da situação o uso. Mas esse foi o mais difícil de conseguir usar pra mim.

Uma das lições que aprendi aqui na Alura é a respeito de programação defensiva, não deixar brechas pro código dar erro, pra alguém fazer algo indevido.

Quero dizer deixas as propriedades de uma classe public me parece ter muita chance de gerar erros. Se eu não usar setter's, terei de deixar as propriedades da classe como public, e setar diretamente nelas o valor, de forma que uma propriedade que deveria ser string alguém pode vir a setar um int de forma arbitrária. O método setter elimina essa possibilidade informando que aquela propriedade só aceita determinado tipo de valor.

É horrível uma classe cheio de getter e setter, mas isso garante a segurança das propriedades, não? Gostaria de uma opinião, no dia a dia vc costuma a implementar essa regra? Ou é mais pra casos específicos como o do vídeo?

1 resposta
solução!

Fábio, se sua preocupação é com o tipo, a partir do PHP 7.4 isso não é mais um problema. Basta definir o tipo na propriedade.

Sobre mim, no dia a dia, crio classes imutáveis sempre que possível. Não há setter. Inicialização pelo construtor e acesso através de métodos apenas aos valores realmente necessários. :-)

Se os objetos daquela classe realmente precisam ser modificados, é só aplicar o tell, don't ask. Esse é o foco dessa regra.