-4

Padronização e uso de objetos

criado por Yudi Hirata em 24/09/2002 1:28pm
Quando criamos uma conexão com algum banco de dados em PHP, temos que trabalhar diretamente com as APIs de acesso de dados, seja ela MySQL, ODBC, Oracle ou MsSql, entre outras. Para padronizar o acesso ao banco é fortemente recomendado que se crie uma interface entre o programador e as APIs. Imagine que hoje você esteja programando em PHP com MySQL e tem a necessidade de migrar para Oracle, caso não exista uma interface de padronização, praticamente todo o seu código fonte certamente terá de ser reescrito.

Para evitar esta dor de cabeça nós devemos nos prevenir para futuras mudanças, logo se criarmos uma interface entre as APIs e o programador diminuímos drasticamente problemas futuros.

Para começar mostrarei como é feito um simples acesso a um banco de dados MySQL:

<?php
$Link = mysql_connect(HOST, USER, PASSWORD);
mysql_select_db(DATABASENAME, $Link);
?>

Bem isto aparentemente é bem simples, porém se fizermos o mesmo para Oracle:

<?php
$Link = Ora_Logon(USER, PASSWORD, ALIAS)
?>

Agora para o Microsoft SQL Server:

<?php
$Link = mssql_connect(HOST, USER, PASSWORD);
mssql_select_db(DATABASENAME, $Link );
?>

Comentários:

Mostrando 1 - 8 de 8 comentários
Muito bom o seu artigo Yudi!
A tendencia do php futuramente é caminhar para total abstracao OO.
Facilitando cada vez mais os desenvolvimentos!
Trabalho com PHP praticamente todo OO adaptando metodos de um framework PHP OO(http://www.miolo.org.br) para a area academica da instituicao onde trabalho.

Se alguem se interessar em dar uma olhada:
http://www.miolo.org.br
27/12/2004 8:32am (~12 anos atrás)

A ADODB faz abstração das sqls também.

Basta o usar o ISO na &ADODB->Execute()
Já com suporte a trasações e tudo.

A PEAR tb é muito boa.
29/09/2002 10:29pm (~14 anos atrás)

Como já citaram o artigo está legal,
mas, acho que não é a solução total.

O exemplo que você citou de sql por exemplo é incompatível com o mysql.

Camadas de abstração facilitam na mudança de banco de dados, mas dificultam na hora de montar sqls.

Você ganha de um lado e perde do outro.
Acredito que o melhor é separar scripts de conexão e sqls dos outros scripts.

Facilitando a alteração futura inevitável.
São só comentários, parabéns pela iniciativa.
28/09/2002 12:33am (~14 anos atrás)

Parabéns pelo artigo, mais gostaria de acrecentar algo:

Isso já foi dito aqui mesmo não me lembro quando, mais a questão é que mesmo que fassamos uma class para padronização a conexão com o banco de dados devemos levar em conta que cada banco de dados implementa a SQL de uma maneira diferente, por isso o uso de uma class tira apenas parte do trabalho de reescrever o código quando mudamos de banco de dados mais mesmo assim somos obrigados a editar as struções SQL.
27/09/2002 10:38am (~14 anos atrás)

Yudi Hirata disse:
Caro Daniel,
Tenho conhecimento das limitações quanto a parte de OOP no PHP, no entato este artigo tem somente a finalidade de demostrar uma das vantagens do uso de objetos e não apresentar a forma correta de como implementar o uso de objetos a nivel de camadas.
Value pelo comentario construtivo
25/09/2002 10:36am (~14 anos atrás)

A classe "METABASE" do Manuel Lemos tbm é muito boa, pode ser encontrada em www.phpclasses.org

:-)
25/09/2002 8:09am (~14 anos atrás)

Lyma disse:
Olá!

Muito bom o artigo porém como não sou muito familiarizado com objetos e classes em PHP fiquei meio perdido... o artigo prometido sobre construção de objetos sai em breve?

:)

Um grande abraço,

Lyma
http://www.lymas.com.br
25/09/2002 6:33am (~14 anos atrás)

Olá,

Parabéns pelo artigo, essa idéia de classe para acesso à banco de dados e até mesmo à outros tipos de tarefas ainda não tinha flasheado em minha mente. Vou levá-las daqui em diante para uso em projetos de maior porte.

Att,

Fábio
24/09/2002 3:45pm (~14 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)