» »

[Zend Framework, PHP5] Zend_Db

[Zend Framework, PHP5] Zend_Db

drola ::

V vodiču za Zend Framework na phparch.com piše, da je uporabljen neposreden dostop do baze (torej sqlite_* oz. v mojem primeru bi bilo mysql_*), ker naj bi bile komponente v Zend_Db še dokaj nestabilne v času pisanja vodiča (Zend Framework PR 0.1.2), vendar pa je zdaj Zend Framework že v različici 0.1.5. Se splača uporabit Zend_Db v neki resnejši aplikaciji ali pa zaenkrat raje uporabim AdoDB ali kaj podobnega?
https://drola.si

Looooooka ::

jst uporablam zend studio...njihovga db accessa nism se nikol uporabu v vseh projektih uporablam adodb...ze sam zarad tega ker je mozno bazo s tem na mssql in mysql uporablat ce stranki pase.Plus zaenkrat ni nekih vecjih lapsusov kar se tice dostopanja in hitrosti.Pa se caching ma kjer ga rabs.
tko da u can't go wrong with adodb.

drola ::

Nisem prepričan, da govoriva o isti stvari. Jaz govorim o komponenti Zend_Db iz Zend Frameworka.

V zgoraj omenjenem vodiču pa na 5. strani piše tole:
Because the database components of the Zend Framework are still relatively unstable, and because I want this demo to be easy to work with, I use a simple class that uses SQLite for storing and retrieving news entries and comments


Zanima pa me, kaj dejansko pomeni, da so komponente relativno nestabilne.
Sicer mi precej bolj diši uporaba Zend_Db, kot pa kakšnega drugega classa, ker bi ga bilo potrebno precej prirejat, da bi bila koda nekako v slogu druge kode in Zend Frameworka.

Ima kdo kakšne konkretnejše podatke?
https://drola.si

rokpok ::

Glede na to, da je Zend framework komaj v 0.1.5 preview verziji, brez problema lahko rečeš, da so vse komponente relativno nestabilne (ker gre za preview verzijo). Kar pa se tiče mojih izkušenj pa lahko rečem, da nisem imel težav pri uporabi Zend_Db komponente in je delovala brez težav. Osebno ne vidim razloga, zakaj ne bi uporabljal še Zend_Db komponente, če uporabljaš vse ostale.
Rad bi bil pingvin.

drola ::

V redu, torej bom uporabil Zend_Db.

Kolikor sem prebral nekaj strani glede tega v manualu, sem videl, da je zadeva bolj za abstrakcijo baze.
Ima mogoče še kaj v stilu preslikave tabele v razred ali pa je to potrebno storiti ročno?
https://drola.si

rokpok ::

Zend_db komponenta vključuje tudi Zend_db_table, ki je implementacija table data gateway-a.
Rad bi bil pingvin.

[MYTiX] ::

Kaj pa Adodb active record? Temelji na Adodb. Ideja je kopirana z Zend_Db_Table, mal izboljšana in deluje tudi na php 4. Meni je bolj všeč. Vsaj zaenkrat.
podpis

Zgodovina sprememb…

  • spremenil: [MYTiX] ()

drola ::

rokpok: Najlepša hvala za odgovore.

[MYTiX]: podpora za PHP4 v mojem primeru predstavlja -, ker hočem imeti čimčistejšo kodo in koda v PHP4 stilu bo uporabljena le, če bo res nujno.
https://drola.si

rokpok ::

[MYTiX]: Adodb active record ni kopija Zend_db_table ampak Zend_db_DataObject-a, ki pa so ga žal odstranili iz knjižice modulov.
Rad bi bil pingvin.

[MYTiX] ::

Ja zgleda da res. Sem vedu da je kopija, na hitro pogledu Zend_db_table in se mi je zdela podobna reč. Zdej ko sem prebral na strani adodb je res kopija dataobjecta. Sej princip je podoben, vsaj kolkor sem na hitro pregledal.
podpis

rokpok ::

Razlika med Zend_db_table in Adodb active record je kar velika. Zend_db_table je implementacija Table Gateway-a, kar pomeni da instanca tega razreda predstavlja relacijsko tabelo. Adodb active record pa je implementacija Active Record-a; instanca razreda predstavlja posamezno vrstico v relacijski tabeli.
Rad bi bil pingvin.

drola ::

Ko so že omenjene relacije:
Kako z njimi delam pri Zend_Db_Table ?
https://drola.si

rokpok ::

Verjetno te zanima, ali Zend_db omogoča delo z večimi tabelami naenkrat (primer: hiša ima več stanovalcev...)? Odgovor je žal negativen, ker Zend framework ne omogoča pravega Object Relational Mappinga (ORM). Zend_db_table je samo abstraktni razred, ki ti omogoča, da delaš poizvedbe nad določeno tabelo. Prednost uporabe Zend_db_table:

1) Uporaba normalnih poizvedb:
$result = $db -> query ('SELECT * FROM users');

2) Uporaba Zend_db_table razreda:
class Users extends Zend_db_table {}
$result = Users -> FindAll ();

Kakorkoli - pravi ORM naj bi bil vgrajen v Zend_db_DataObject ampak (kot sem že rekel) so zadevo opustili.
Rad bi bil pingvin.

drola ::

Ja, ravno to me je zanimalo.

Bi se dalo vseeno kako uporabit Zend_Db_DataObject? Je bil toliko dokončan, da je uporaben in bi ga lahko dobil iz SVNja tako, da bi si checkoutal različico, v kateri je še bil?
https://drola.si

rokpok ::

Močno dvomim, da so zadevo razvili tako daleč, da bi bila primerna za širšo uporabo. Drugače ne vidim razloga, zakaj je nebi vključili v Zend Framework.
Rad bi bil pingvin.

drola ::

Torej bi bila potem najboljša možnost, da sam napišem modele, Zend_Db pa uporabim le za abstrakcijo baze.
https://drola.si

rokpok ::

Nekako tako ja. PHP framework, ki ima (za moje pojme) odlično implementirane modele, je CakePHP. Tako, da si lahko malo pogledaš. Edino kar implementaciji manjka je kakšna PHP5 podpora v stilu __get () in __set ().
Rad bi bil pingvin.

Zgodovina sprememb…

  • spremenil: rokpok ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Framework

Oddelek: Izdelava spletišč
212593 (1133) techfreak :)
»

[PHP] Kako ugotoviti kaj je $this

Oddelek: Programiranje
7729 (593) alexa-lol
»

Zend Framework in Dwoo template engine

Oddelek: Izdelava spletišč
111548 (1312) BigWhale
»

[PHP] Zend engine?

Oddelek: Programiranje
81691 (1536) Gandalfar
»

Glavni PHP razvijalec dal odpoved

Oddelek: Novice / --Nerazporejeno--
356665 (4621) darkolord

Več podobnih tem