>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Dicas PHP OO com MVC.


Olá Rafael, assisti os cursos de PHP MVC e OO porém estou com algumas dúvidas:
1 - Nas classes VO é obrigatório passar todos os atributos que são os campos da tabela? Tem alguma maneira mais prática para fazer caso eu tenha centenas de campos na tabela?
2 - Em umas das aulas você mencionou que as regras de negócio ficam no nosso Model, logo, explicitamente toda regra de negócio ficaria nesse Model? Como por exemplo um usuário digitou um nome em branco, digitou o e-mail de forma errada, métodos de sanitização dos dados e etc.



3 Respostas


Olá

Segue respostas do instrutor:

1 - Você pode criar um construtor, veja isso no curso de OO. Sobre passar todos os parâmetros, não. Depende do seu modelo, se em alguma vez você desejar inserir apenas X campos, crie um novo método no CRUD que somente leia aqueles campos do VO.

2 - Exato. Outro exemplo: sempre que cadastrar o estoque 0, ele automaticamente assume estoque 10. Ou, sempre que um produto for excluído, um e-mail é enviado ao administrador. Isso tudo são regras do negócio.




A questão 2 tá ok.
Já na 1 acho que não me entendeu corretamente.
temos na classe produtoVO


class ProdutoVO{
private $id;
private $nome;
private $marca;
private $preco;

public function getId(){
return $this->id;
}

public function setId($id){
$this->id = $id;
}

public function getNome(){
return $this->nome;
}

public function setNome($nome){
$this->nome = $nome;
}

public function getMarca(){
return $this->marca;
}

public function setMarca($marca){
$this->marca = $marca;
}

public function getPreco(){
return $this->preco;
}

public function setPreco($preco){
$this->preco = $preco;
}
}


nesse código tenho alguns atributos, mas e caso minha tabela de produto tivesse mais de 100 campos eu teria que realizar o getters e setters de cada atributos, teria ou existe algo mais prático?




Rafael,

Segue resposta do instrutor.

O software utilizado no curso gera os getters e setters, logo o trabalho é minimo.

Utilizando o padrão de projeto DAO é necessário que seja desta forma.

Em relação a ter 100 campos é de se analisar, pois geralmente é redundante, já que as maioria dos campos podem ser repassado a outras tabelas relacionadas.