Autor | Zpráva | ||
---|---|---|---|
souki Profil |
#1 · Zasláno: 31. 5. 2006, 10:24:33
Občas vidím v projektech, že se pro přístup k databázi používá třída. Má to nějaký význam? Jediné co mě napadá je logování dotazů nebo práce s více databázemi...
|
||
Hugo Profil |
#2 · Zasláno: 31. 5. 2006, 10:42:18
Ma to ty same vyhody jako OOP jinde.
|
||
souki Profil |
#3 · Zasláno: 31. 5. 2006, 10:44:27
Hugo
Takže například? |
||
roberta Profil |
#4 · Zasláno: 31. 5. 2006, 12:53:47
nuž triedy sa používajú ako "definícia" objektu v objektovo orientovanom programovaní (OOP). je to úplne iná filozofia programovania, ako procedurálne programovanie... takže si trochy preštuduj základy OOP a možno zistíš na čo sú tie triedy dobré.
přístup k databázi používá třída tak to mali zrejme na mysli, že na prístup (connect) k DB je naprogramaná trieda, ktorá to v sebe urobí a keď je tá trieda naprogramovaná dobre, tak je napr. jedno do akej databázy sa pripojuješ (MySQL, MS SQL, Oracle, ...) v kóde iba vytvoríš inštanciu tej triedy - objekt a potom zavoláš metódu objektu na prístup (jeden "príkaz") a ten objekt sám vie, že do ktorej DB sa má pripojiť. a ty už v samotnom kóde nemusíš riešiť na akú DB sa pripojuješ, aký má connestion string, atď... proste iba zavoláš tú metódu a o zvyšok sa nemusíš starať... |
||
souki Profil |
#5 · Zasláno: 31. 5. 2006, 12:57:25
jen mě zajímalo jestli to má třeba nějaké bezpečnostní výhody... já momentálně používám přístup přes objekt k logování nápadných příkazů....
|
||
Hugo Profil |
#6 · Zasláno: 31. 5. 2006, 13:40:56 · Upravil/a: Hugo
souki
Bezepcne to muze byt i proceduralne, stejne jako muze byt OOP kod nebezpecny. Vzdy zalezi na tom jak to napises. Info o vyhodach oop mas napr. tady http://en.wikipedia.org/wiki/Object-oriented_programming |
||
krteczek Profil |
#7 · Zasláno: 31. 5. 2006, 13:41:06
můj názor je že OOP v php nemá moc význam, pokud se jedná o projekty s vysokou denní návštěvností, je lepší napsat aplikaci s ohledem na výkon, pokud používáte mysql nepotřebujete při každém dotazu ověřovat jaká je to vlastně databáze, jaká je to verze php, jak je nastavene a milion dalších věcí.
prostě v projektu použít nějakou obecnou třídu s milionem funkcí nemusí být to pravé ořechové. extrémní případ jsou některé free cvs, obchody, kdy to nahrajete na jakýkoliv hosting a ono to jede téměř bez zásahu, pokud je 100 lidi za den není co řešit, může být nasazeno skoro všechno, ale pokud počitáte se stovkami lidí online OOP aplikace moc nebrat Nicméně vím, že jou projekty, které musí být naprogramovány objektově, protože nejsou stavěné jen pro jeden konkrétní projekt, přikladem může být Texy! krteczek |
||
souki Profil |
#8 · Zasláno: 31. 5. 2006, 13:45:44
nejde mi ani tak o výhody OOP.... To používám jen když je to očividně výhodněiší (a moc často to tak očividné není)
šlo mi o důvod přístupu k databázi přes objekt.... už si s tím, ale od rána hraju a zjištuji, že to má výhody. Každý dotaz jde profiltrovat, podezřelé uložit nebo vůbec neprovádět a podobně... Horší je to, ale s přístupem k DB ve funkcích.... na to si budu muset zopakovat globálnost a pod... |
||
Hugo Profil |
#9 · Zasláno: 31. 5. 2006, 13:46:11
krteczek
To co jsi napsal je mirne zmatene. Zaver, ze nema cenu pouzivat OOP v PHP kvuli tomu, ze nektere volne dostupne tridy jsou narocne na vykon je opravdu zvlastni. Stejne tak se da argumentovat proti proceduralnimu programovani. |
||
Hugo Profil |
#10 · Zasláno: 31. 5. 2006, 13:47:05
souki
Pokud chces vedet vyhody, tak sem musis tu tridu, kterou pouzivas dat. Jinak ti nikdo nerekne nic jineho nez obecne veci. |
||
souki Profil |
#11 · Zasláno: 31. 5. 2006, 13:50:46
Hugo
zatím takřka žádnou... začínám nový projekt a chtěl bych, aby bylo všechko jak se patří... Tak mě zajímalo, jestli je přístup přes objek jen výmysl free cms u kterých jsem to viděl nebo se to opravdu používá..... Vidím, že je to jako vždycky různé.... Když nic jinýho tak to vypadá líp, když je v kódu $db->query místo suchého mysql_query =) |
||
Hugo Profil |
#12 · Zasláno: 31. 5. 2006, 13:54:37
To nejde rict obecne, pokud mas cely kod psany objektove, tak je samozrejme vhodne mit i pristup k db pomoci objektu. Jinak se musis rozhodnout sam. Ja pouzivam v php5 uz prakticky jen OOP, protoze to je (pro me) vyhodnejsi, ale pokud chces udelat jen malou aplikaci a s oop nemas moc zkusenosti, tak je imho lepsi to napsat proceduralne.
|
||
souki Profil |
#13 · Zasláno: 31. 5. 2006, 13:56:59
Hugo
takže objektově... dík ;) |
||
mila Profil |
#14 · Zasláno: 31. 5. 2006, 14:08:08
Horší je to, ale s přístupem k DB ve funkcích.... na to si budu muset zopakovat globálnost a pod...
Pokud budu mít třídu pro práci s db, udělám ji statickou. Tzn. budu volat db::query ('...'), takže nemusím v každé fci psát $db = new db; nebo global $db; V php 5 je to sranda, v php 4 je třeba ohackovat neexistenci statických proměných (třídy)... |
||
Hugo Profil |
#15 · Zasláno: 31. 5. 2006, 14:09:58
mila
PHP4 a OOP je velmi smutny pribeh :-). (bohuzel) |
||
krteczek Profil |
#16 · Zasláno: 31. 5. 2006, 14:13:32
Hugo: byla to vice méně reakce na roberta který zminoval také právě tyto OBECNÉ třídy, Je jasné že pokud napíšeme něco (třída/funkce) na přesně určený účel bude to imho pracovat lépe a rychleji než obecný kod na všechno.
a já mám rád malé jednoduché jednoúčelové automaty ;-) krteczek |
||
Hugo Profil |
#17 · Zasláno: 31. 5. 2006, 14:16:50
krteczek
Ach so, ... |
||
mila Profil |
#18 · Zasláno: 31. 5. 2006, 14:18:11
Zrovna něco programuju, musím říci, že když si člověk zvykne, tak to docela jde:
Nemožnost definovat public, protected, ... - to je jen pro programátora. Když se napíšu si k fci, že je private, tak ji prostě nevolám. Neexistence statických proměných - mám fci, která vrací referenci na proměnou, která je uvnitř ní definována jako statická. Kopírovájí objektu při přiřazení - jen napíšu pár & navíc. Třídy nemají konstatny - mám fci, která vrací konstantní hodnotu. atd... Psaní OOP není o jazyku a prostředcích, ale o myšlení. Co mi v php4 opravdu chybí, jsou exceptions. Jde to bez nich, ale kód je plný testů, zda nebyla nějaká chyba.. |
||
roberta Profil |
#19 · Zasláno: 31. 5. 2006, 20:42:15
inak v diskusii o PHP sa mi zdá trochu zmätočné diskutovať o OOP, pretože programovanie technológiou PHP nie je (a podľa môjho skromného názoru ani v dohľadnej dobe nebude) objektovo orientované...
|
||
souki Profil |
#20 · Zasláno: 31. 5. 2006, 20:47:41
roberta
co naděláme.... at budeme mít sebelepší jazykové prostředky, všechno v php musí končit instrukcí echo |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0