Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Melhor prática para getters e setters

Pessoal, boa tarde,

pode ser visto como péssima prática utilizar a função __call($method, $args) substituindo os getters e setters? Por exemplo, em uma classe com diversas propriedades privadas/protegidas e já tipadas (utilizando o PHP 7.4), algumas possuem regras específicas para serem setadas, e outras precisam ser formatas antes de retornarem, mas também tem muitas que são simples set e get. Então eu poderia criar um genérico com __call e as propriedades com particularidades criar o método.

Enfim, qual a melhor prática neste caso?

2 respostas

Gabriel, não entendi bem sua dúvida.

Por que você teria um método __call para acessar as propriedades? rs

Faria mais sentido um __get, aí acho que eu te entenderia...

PS.: Você abriu essa dúvida fora de qualquer fórum de curso específico, então é bem mais difícil dela ser encontrada. rs

solução!

Oi gabriel, darei uma opinião pessoal.

Se sua classe tiver um grande número de "métodos padronizados", como getters e setters e sem lógica complexa, o uso __call pode ser interessante, até mesmo para reuso de código em outros projetos similares.

Porém como nunca existe almoço grátis, o __call vai tornar o seu código bem menos legível. Por exemplo, caso outra pessoa utilize seu código ela terá que entender bem mais do seu código para saber o que está acontecendo por trás dos panos, eu tenho a impressão também que deixa o código mais engessado para mudanças (nunca sabemos quando elas virão). Logo, eu acredito que uso o __call deva ser sempre evitado quando possível. É uma visão pessoal.