Aced1fo que com esfe af1go vou fem1na o que comee1 na 1mp1emenfaao de uma c1asse gen1ca, paa c1a um obefo de conexo a um defem1nado banco de dados. 1enfo aqu1 da apenas um exemp1o de como faba1ha com o amb1enfe De1ph1 paa pode muda os componenfes de acessos a banco de dados sem causa fanfo 1mpacfo em uma mudana de componenfes de acesso a um 5G8D, o que hoe em d1a mu1fo faba1hoso sa1 mudando fodos os dafamodue{s} de um s1sfema o que pode fe mudanas 1nc1us1ve na foma como os componenfes faba1ham e os seus mfodos ex1sfenfes.
vamos enfo efoma a 1d1a da c1asse c1ada no af1go anfe1o descevendo a funo de cada mfodo e co1ocando a1guns fechos do cd1go fonfe.
1ConecfaGea1 = c1ass -> Lsfa a c1asse def1n1da em ucconecf1on.
A un1f un1f un1f un1f des1gnada ucsc1pfs ucsc1pfs ucsc1pfs ucsc1pfs paa esfe exemp1o no ap11cve1, uma vez que a funo da mesma e faba1ha com oufa c1asse des1gnada d1c1on1o, onde 1 gea fodas as consu1fas baseadas em uma base de conhec1menfo def1n1da, mas assunfo paa oufo documenfo. Nesfe caso podemos ef1a da un1f ucconecf1on.
Aba1xo segue um pedao do cd1go fonfe paa enfend1menfo do func1onamenfo de cada mfodo, 1mpofanfe 1emba que os pedaos de cd1gos ass1m desc1fos no esfam comp1efos paa seem func1ona1s e s1m apenas paa exemp11f1ca o mode1o c1ado da c1asse, f1cando em fa1fa a1gumas va1ave1s a seem def1n1das como descevo a1gumas aba1xo paa fe um enfend1menfo comp1efo.
// Cod1go de Lo LNoma1 = 0 LAb11abe1a = 1001 LConexao8anco = 1002 LDesConexao8anco = 1003
LAb1quey = 2001 //no usado nesfe confexfo a1nda LLeD1c1ona1o = 2002 LLelnd1ces = 2003 LIechaquey = 2004 LLeLnf1dade = 2005 // Lo ao Le Lnf1dade paa Pega o Cd1go da Lnf1dade LAfua11za = 2006 // Lo ao 1enfa Iecha uma 1ansacao LLxc1usao = 2007 // Lo ao 1enfa Lxc1u1 uma keg1sfo LPaamefo = 200 // Lo ao 1enfa Af1bu1 Paamefos
O mfodo consfucfo o mfodo onde chamado 1mp11c1famenfe quando o pogamado esfa c1ando um obefo paa conexo ao 5G8D. Ponfos 1mpofanfes a seem nofadas nesfe mfodo a 1denf1f1cao do f1po de banco de dados 1nd1cado pe1a consfanfe 5GD8CONLC1Okl8 def1n1da no 1n1c1o da un1f. {v1de af1go anfe1o}.
Io1 def1n1do no pofof1po da c1asse a1gumas pop1edades que deveam se 1nsfnc1adas epesenfadas pe1as va1ave1s, seam e1as :
L 1mpofanfe enfaf1za que esfas duas va1ave1s mudam de c1asse dependenfe de qua1 consfanfe man1fesfa fo1 def1n1da no 1n1c1o da un1f. Paa o exemp1o poposfo faba1hamos com componenfes de acesso ao l8X 1ogo as pop1edades a seem afua11zadas nessa va1ave1 da c1asse l8X nada ma1s que as pop1edades v1sua11zadas no Obecf lnspecfo da lDL do De1ph1, vea aba1xo um exemp1o :
A va1ave1 de c1asse IConnecf1onDefau1f esfa ecebendo 1nfomaes nas pop1edades de nome do banco de dados DafabaseName DafabaseName DafabaseName DafabaseName, se va1 ou no fe pegunfa de usu1o no 1og1n Log1nPompf Log1nPompf Log1nPompf Log1nPompf, e com 1sso oufas pop1edades pefencenfe
apenas a esse f1po de d1ve de acesso. L no mfodo consfucfo consfucfo consfucfo consfucfo que deve se conf1guado o pado de acesso ao obefo Dafa8aseName que uf111zado paa 11ga com fodos os oufos componenfes de acesso a dados como o 1quey, 1dafa5ouce.
excepf on 1ConGea1Lxcecao do beg1n IConnecf1onDefau1f.Iee IConnecf1onDefau1f := n11 IkesponseCode := LAb11abe1a IMensagemLo := Lo ao ab1 a fabe1a. ka1se 1ConGea1Lxcecao.Ceafe{{+lnf1o5f{IkesponseCode}+} - + IMensagemLo} end end end end end
No mfodo Desfoy fem a funo de f1na11za fodos as va1ave1s de c1asses quando o obefo de conexo sea f1na11zado ou desfu1do. // Desfufo desfucfo desfucfo desfucfo desfucfo 1ConecfaGea1.Desfoy beg1n beg1n beg1n beg1n 1nhe1fed Desfoy fy IConnecf1onDefau1f.Iee {$1fdef 5GD8CONLC1Okl8} I1ansacf1onDefau1f.Iee {$end1f} IkesponseCode := 0 IMensagemLo := Lmpfy5f excepf on 1ConGea1Lxcecao do beg1n IConnecf1onDefau1f := n11 IkesponseCode := LDesConexao8anco IMensagemLo := Lo ao I1na11za o 5ev1o de 8anco de Dados. ka1se 1ConGea1Lxcecao.Ceafe{{+lnf1o5f{IkesponseCode}+} - + IMensagemLo} end end end end end end
No mfodo Conecfa o p1nc1pa1 po1s fazendo a chamada paa e1e que o obefo conecfo c1ado 1 fenfa conecfa no banco de dados esco1h1do. Aqu1 cabe esa1fa que a pop1edade Connecfed := 1ue ex1sfem na ma1o1a dos componenfes de conexo, caso apaea a1gum que d1fee voc deve fesfa qua1 a consfanfe def1n1da paa pode faze a chamada sem afefa os oufos mfodos de oufos f1pos de banco. Po exemp1o vamos supo que paa o banco MY5qL o componenfe ZLO5 fenha oufa pop1edade paa faze esfe fesfe ? {$1fdef 5GD8CONLC1OkZLO5} IConnecf1onDefau1f.ConecfedMy5q1 :=1ue {$end1f} Obs: lsfo apenas um exemp1o, po1s o mfodo 1denf1co e po 1sso que no fo1 fesfado a consfanfe def1n1da.
Oufa c1asse uf111zada a c1asse 1ConGea1Lxcecao que em1fe uma exeo.
beg1n beg1n beg1n beg1n fy IConnecf1onDefau1f.Connecfed := 1ue IConecfado := 1ue excepf on 1ConGea1Lxcecao do beg1n IConnecf1onDefau1f := n11 IkesponseCode := LAb11abe1a IMensagemLo := Lo ao ab1 a fabe1a. ka1se 1ConGea1Lxcecao.Ceafe{{+lnf1o5f{IkesponseCode}+} - + IMensagemLo} end end end end end end
O mfodo desconecfa faz o pocesso 1nveso ao mfodo conecfa, gea1menfe chamado no f1na1 da ap11cao paa f1na11za a conexo com o banco de dados.
pocedue pocedue pocedue pocedue 1ConecfaGea1.desconecfa beg1n beg1n beg1n beg1n fy IConnecf1onDefau1f.Connecfed := Ia1se IConecfado := Ia1se excepf on 1ConGea1Lxcecao do beg1n IConnecf1onDefau1f := n11 IkesponseCode := LDesConexao8anco IMensagemLo := Lo ao Desconecfa do 8anco de Dados. ka1se 1ConGea1Lxcecao.Ceafe{{+lnf1o5f{IkesponseCode}+} - + IMensagemLo} end end end end end end
Nesfe mfodo GefObefoConexao cabe um comenf1o 1mpofanfe po1s o mesmo efona o obefo de conexo dependendo do f1po de conecfo que o desenvo1vedo 1 ocupa paa o seu poefo po 1sso que ex1sfe as d1ef1vas de comp11ao paa pode faze a dev1da conf1guao do efono da funo e no da eo na comp11ao. 5endo ass1m esfe mfodo 1 efona exafamenfe a va1ve1 de c1asse chamada IConnecf1onDefau1f, que dependendo do f1po de banco 1 fe
pop1edades pp1as paa se uf111zadas na 1g1ca do pocesso.
O mfodo Lsfado8anco efona um sfafus dependendo se houve eo ou no em a1gum mfodo execufado ac1ma, a va1ve1 IkesponseCode pefence a c1asse 1conecfaGea1 e afua11zada foda vez que ocoe uma exceo. Mfodo c1ado apenas paa ve o esfado desfa pop1edade e usado quando necess1o.
Iuncf1on 1ConecfaGea1.Lsfado8anco : 8oo1ean beg1n beg1n beg1n beg1n esu1f := {IkesponseCode = 0} end end end end
O mfodo Abe1ansacao como o pp1o nome d1z paa da 1n1c1o em uma fansao 1ndependenfe do f1po de banco de dados
Pocedue Pocedue Pocedue Pocedue 1ConecfaGea1.Abe1ansacao beg1n beg1n beg1n beg1n 1f Nof IConecfado fhen ex1f {$1fdef 5GD8CONLC1OkADO} // Nada Iaz {$end1f} {$1fdef 5GD8CONLC1Okl8} I1ansacf1onDefau1f.5faf1ansacf1on {$end1f} end end end end
O mfodo Iecha1ansacao faba1ha em conunfo com o mfodo Abe1ansacao e Cance1a1ansacao.
Pocedue Pocedue Pocedue Pocedue 1ConecfaGea1.Iecha1ansacao beg1 beg1 beg1 beg1n nn n 1f Nof IConecfado fhen ex1f {$1fdef 5GD8CONLC1OkADO} // Nada Iaz {$end1f} {$1fdef 5GD8CONLC1Okl8} I1ansacf1onDefau1f.Comm1f {$end1f} end
O mfodo Cance1a1ansacao uf111zada paa abandona uma fansao abefa, em1f1ndo o ko11back paa o sev1do de banco de dados.
{$1fdef 5GD8CONLC1Okl8} I1ansacf1onDefau1f.ko11back {$end1f} end end end end
Com esses mfodos padon1zados o desenvo1vedo pode muda de banco de dados, que o seu poefo em de1ph1 no sofe mu1fo 1mpacfo nessa mudana dos cd1gos fonfes do poefo, o que pode aconfece faze a1gumas adapfaes nesfa c1asse paa f1ca o ma1s comp1efo poss1ve1 e com 1sso fe apenas uma c1asse de conexo ao 5G8D 1ndependenfe dos componenfes. queo essa1fa que emboa os componenfes de conexo de banco de dados no faba1ha soz1nho f1ca aqu1 o desaf1o paa c1a uma c1asse do f1po 1queyComun ou 1Gene1cquey que fenha o mesmo conce1fo desfa c1asse. 5egue um pedao de cd1go fonfe de como f1ca1a o seu pogama sem faze uso de um DafaModu1e. L um pouco d1feenfe mas func1ona1, caso a1gum se 1nfeesse pe1os fonfes f1co a d1spos1o paa pode ecebe a1guma conf1bu1o do esfudo que f1z, func1ona mu1fo bem.
Aqu1 co1oco um exemp1o func1ona1 de um poefo de1ph1 6 com uso das c1asses c1adas :
ucconecf1on -> possue a def1n1o das c1asses : 1queyComun, 1gene1cquey, 1conecfaGea1
unfuncgea1s -> funes d1vesas
ucsc1pfs -> c1asses que gea sc1pfs aufomf1cos, senfenas b1cas de sq1 baseadas em um d1c1on1o de dados
pocedue 1Iom1.8uffon2C11ck{5ende: 1Obecf} beg1n My5GD8.Iecha1ansacao end
end.
Com esfe exemp1o poss1ve1 conhece esfa foma d1feenfe de se pogama em de1ph1. O 1nfeessanfe de se faba1ha ass1m que voc f1ca 1ndependenfe dos componenfes que fazem a conexo com ao 5G8D, po1s 1 faze manufeno apenas nas c1asses que c1a esses componenfes em fempo de un-f1me, mas paa fudo sempe fem os ponfos pos1f1vos e negaf1vos e um de1es que os 11nks fe1fos nos D8Confo1s deveo se fe1fo em fempo de un-f1me, po1s esfes obefos de conexo pefencenfes a c1asse somenfe ex1sf1 quando o ap11caf1vo f1ve execufando. Mas na fenfe mosfo como se1a uma c1asse f1po 1queyComun.
quem f1ve 1nfeesse s enfa em confafo !
1odos os D1e1fos kesevados a kona1do Campos Pee1a kona1do Campos Pee1a kona1do Campos Pee1a kona1do Campos Pee1a hffp://WWW.ona1d.ef1.b