POO+PHP - Toda tabela do banco é uma classe no código?

23/12/2018

10

Bom dia.

Estou iniciando os estudo avançados em OO e me veio uma dúvida. Atualmente eu trabalho, ou tento kkk, com OO no PHP. tenho as classes e tal, porém tenho mais tabelas no meu banco do que classes no meu código.
Sendo assim gostaria de saber se toda tabela do meu bando deveria ser uma classe e consequentemente os registros um objeto?

Outro ponto é em relação as consultas. Atualmente efetuo as consultas e retorno um array, com o fetchall(PDO::FETCH_ASSOC), para quem chama o método de consulta e em alguns lugares percebi que retornam o objeto de acordo com a consulta, criando assim um array de objeto. A forma correta é essa?
Se eu consulta o cadastro de um cliente que nele tem o endereço (que no caso é uma outra tabela) eu devo consultar e em seguida cria o objeto cliente e depois o objeto endereço e retornar os dois objetos?

Me ajudem a programar melhor kkkk.
Valeu.
Responder

Post mais votado

11/01/2019

Olá, Ricardo. Tudo bem?

Quando você fala "todas as classes", vou restringir um pouco esse escopo: todas as classes que representam "entidades" do seu domínio (como Cliente, Professor, Aluno, Endereço, Produto, etc). Ou seja, aquelas que representam os dados principais com os quais seu sistema lida.

Então, considerando que você desenvolve seguindo uma abordagem focada no domínio da aplicação, basicamente cada classe dessa terá uma tabela equivalente (ou mais de uma), pois é no banco de dados que estarão as informações que essas classes representam.

Sobre o relacionamento de Cliente e Endereço, você pode fazer duas consultas ou apenas uma usando JOIN. Dependendo do caso, pode-se usar uma ou outra abordagem. No final você terá um objeto Cliente com a propriedade Endereço preenchida.

Abraço.
Responder

Mais Posts

14/01/2019

Ricardo Porto

Olá, Ricardo. Tudo bem?

Quando você fala "todas as classes", vou restringir um pouco esse escopo: todas as classes que representam "entidades" do seu domínio (como Cliente, Professor, Aluno, Endereço, Produto, etc). Ou seja, aquelas que representam os dados principais com os quais seu sistema lida.

Então, considerando que você desenvolve seguindo uma abordagem focada no domínio da aplicação, basicamente cada classe dessa terá uma tabela equivalente (ou mais de uma), pois é no banco de dados que estarão as informações que essas classes representam.

Sobre o relacionamento de Cliente e Endereço, você pode fazer duas consultas ou apenas uma usando JOIN. Dependendo do caso, pode-se usar uma ou outra abordagem. No final você terá um objeto Cliente com a propriedade Endereço preenchida.

Abraço.


Entendi, obrigado pelo retorno. Era uma dúvida que tinha sobre as classes.

Obrigado pelo esclarecimento.

Att
Responder