Ir para conteúdo
Fórum Script Brasil
  • 0

Abstracao de Registros no BD


Murilo Lessa

Pergunta

fala galera, é o seguinte: eu to começando a fazer uns sites mais cabeludos em PHP e estou com um problema "conceitual" de como aplicar OO nesses projetos.

voces separam SQL de código HTML? idealmente eu queria ter codigo HTML/PHP de layout, uma parte SQL que controla a transacao e um outro nivel PHP/SQL que faz

o acesso ao banco. voce trabalha dessa maneira?

meu jeito padrão de programar, que é um pouco trabalhoso para sites pequenos, ajuda bastante quando os sistemas incham em complexidade, é +- criando por exemplo uma class clssUsuario que abstrai um/uns registro(s) da tabela de usuarios. a ideia é que a classe Usuario abstraia todo o recordset ai você pode fazer por exemplo

$dbc = new DBCommunication();

$user = new User($dbc);

$user->name = 'John';

$user->age = 35;

$user.save(); // inclui ou faz update

$project = new Project($dbc);

$project->id_user = $user->id;

$project->name = 'Johns Project';

$project.save();

dessa forma, cada vez que um tipo novo surge, suponha que amanha eu queria colocar noticias, então eu crio uma classe Noticias que abstrai o recordset de Noticias e tudo parte dai... a minha duvida é, na sua experience de mtos anos como programador, isso é o jeito padrão? como no mercado profissional você dividiria isso? você cria a pagina html+php+sql tudo junto?

e faria mais sentido você ter o metodo de salvar/incluir na classe base, por exemplo usuario.Salva(), ou centralizar tudo numa classe de acesso direto ao database, como $dbc.IncluiUsuario($user)?

aff.. locura né? mas é um pulgão atrás da minha orelha porque toda vez que eu faço um código que não segue esse padrão, eu tenho a impressão que o código está sujo, pouco dividido e de fácil manutenção...

obrigado e não tenha pressa nenhuma em expressar suas opiniões :)

falou e grande abraço,

Murilo

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ola Murilo, isso é sim um padrão no desenvolvimento não só em PHP. É o padrão MVC.

Model-view-controller (MVC) é um padrão de arquitetura de software que visa a separar a lógica de negócio da lógica de apresentação, permitindo o desenvolvimento, teste e manutenção isolado de ambos.

O modelo (model) é usado para definir e gerenciar o domínio da informação e notificar observadores sobre mudanças nos dados. Ele é uma representação detalhada da informação que a aplicação opera. A lógica de negócio adiciona valor semântico aos dados, e quando há mudança de estado o modelo notifica seus observadores. Por exemplo, aluno, professor e turma fazem parte do domínio de um sistema acadêmico. Operações como calcular a média final do aluno ou o índice de faltas da turma fazem parte da lógica de domínio. A forma como o dado é armazenado ou acessado não é de interesse do MVC, assume-se que é de responsabilidade do modelo.

A visão (view) apresenta o modelo num formato adequado ao utilizador, na saída de dados, e diferentes visões podem existir para um mesmo modelo, para diferentes propósitos.

O controlador (controller) recebe a entrada de dados e inicia a resposta ao utilizador ao invocar objetos do modelo, e por fim uma visão baseada na entrada. Ele também é responsável pela validação e filtragem da entrada de dados.

Existem frameworks que facilitam o desenvolvimento MVC, dentre eles o Zend, CakePHP, Yii, Symfony e Codeigniter (dentre outros). Atualmente estou utilizando o Codeigniter, ótimo framework, bem organizado, seguro e com uma ótima documentação. O Zend é o mais famoso destes, robusto e recomendado para grandes aplicações. O CakePHP é um ótimo framework também, ele lembra o Ruby on Rails. O Yii é dentes estes o que tem a melhor performance, não o conheço muito bem, bem como não conheço muito bem o Symfony.

http://codeigniter.com/

http://www.symfony-project.org/

http://www.zend.com/en/

http://www.cakephp.com.br/

http://www.yiiframework.com/

Na minha opinião, esta é a melhor forma para desenvolver qualquer software, afinal o método de desenvolvimento com MTA's (Medidas Técnicas Alternativas), mais conhecidas como GAMBIARRAS ou POG (Programação Orientada a Gambiarra) não é a mais recomendada.

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...