Korektny zapis triedy pre pracu s DB – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Korektny zapis triedy pre pracu s DB – PHP – Fórum – Programujte.comKorektny zapis triedy pre pracu s DB – PHP – Fórum – Programujte.com

 

jozosandy0
Newbie
11. 6. 2009   #1
-
0
-

V PHP programujem uz nejaku dobu a rozhodol som sa naucit programovat v tomto jazyku objektovo. Napisal som si velmi jednoduchu triedu na pracu s databazou, no nie som si uplne isty spravnostou vsetkych zapisov. Bol by som velmi rad, keby mi ju skontroloval niekto zbehli v danej problematike a pripadne ju opravil tak, aby bola zapisana korektne. Konkretne ma zaujima nasledovne:

1- zvolil som viditelnost premennych spravne ?
2- zvolil som viditelnost funkcii spravne ?
3- pouzivam spravne pseudopremennu $this ?
4- funkcia query ma dostat ako parameter z vonku SQL kod (ktory sa "dosadi" do premennej $sql). Niesom si isty, ci mam aj tejto premennej $sql definovat nejaku viditelnost, alebo nie, pokial ano, tak aku.

<?php

class Database {
private $db_host = 'localhost';
private $db_user = 'root';
private $db_pass = '';
private $db_database = 'projekt';
private $link;
private $db_selected;
private $result;

public function connect() {
$this->link = mysql_connect($this->db_host, $this->db_user, $this->db_pass);
if (!$this->link) {
die();
}

$this->db_selected = mysql_select_db($this->db_database, $this->link);
if (!$this->db_selected) {
die ();
}
}

public function query($sql) {
$this->result = mysql_query($sql, $this->link);
return $this->result;
}
}
?>

$mysql = new Database();
$mysql->connect();
$mysql->query('SELECT * FROM ...');


Je jasne, ze funkcnych zapisov danej triedy je niekolko, mna vsak zaujima, ako tuto triedu prepisat tak, aby bola uplne korektna (pokial teraz nie je). Preto prosim o radu hlavne tych, ktory maju v danej problematike jasno.

Vopred dakujem.

Nahlásit jako SPAM
IP: 158.195.167.–
hrach
~ Redaktor
+1
Boss
11. 6. 2009   #2
-
0
-

-ohledne viditelnosti - bud musim ty promenne neastavovat v constructoru, nebo je musis udelat viditelne (jinak nenastavis jmeno db, a tak beze zmeny kodu tridy)
-viditelnost metod ok
-viditelnost $link - ok
-promenna select_db - ok neni, rekspektive ne v tuto chvili, kdyz v pripade neuspeneho vyberu db ukoncujes script, to nedava smysl. a i kdyby si tu promennou nahradil lokalni ($selec = ...; if ($select) die()) tak stejne by to bylo spatne, protoze v objektovem kodu se pouzivaji vyjimky (exceptions)
-viditelnost se definuje pouze clenskym promennym, tedy $sql je ok

Nahlásit jako SPAM
IP: 90.179.27.–
http://jan.skrasek.com@hrachcz – webdeveloper
Lamicz
~ Anonymní uživatel
8 příspěvků
12. 6. 2009   #3
-
0
-

jozosandy: Je to napsane spravne, ale neni to OOP :)

Nahlásit jako SPAM
IP: 78.102.184.–
Quiark0
Věrný člen
12. 6. 2009   #4
-
0
-

Já myslím, že OOP a výjimky jsou poměrně nezávislé koncepty. Takže pokud se teď chceš učit jen OOP, nechť tam (zatím) zůstane die.

Lamicz: Co na tom není OOP?

Tohle je tak malý kus kódu, že až nemá smysl se o něm nějak víc bavit. Zajímavé to začne být až když to začneš kombinovat s dalším kódem (třídami).

Nahlásit jako SPAM
IP: 193.86.140.–
bukaj_0010
Věrný člen
12. 6. 2009   #5
-
0
-

jozosandy
V tomto případě použití ti OOP nic moc nepřináší. Doporučuji nastudovat nějakou literaturu. Mně se docela líbila kniha PHP: Objects, Patterns, and Practice[1], napsal Matt Zandstra. (Dá se sehnat i jako PDF ke stažení.)

hrach
v objektovem kodu se pouzivaji vyjimky (exceptions)
Mohou, nemusí. Nedělal bych z toho nějaké obecné pravidlo. Ale je pravda, že die() je fůj.

[1] http://www.amazon.com/PHP-Objects-Patterns-Practice-Second/dp/1590599098

Nahlásit jako SPAM
IP: 88.101.128.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
hrach
~ Redaktor
+1
Boss
13. 6. 2009   #6
-
0
-

ano, samozřejmě že se nemusí, ale já sem taky neřekl, že musí, já jsem jen řekl, že se to tak děla :D

Nahlásit jako SPAM
IP: 90.179.27.–
http://jan.skrasek.com@hrachcz – webdeveloper
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

Podobná vlákna

Kniznica pre pracu s videom — založil qwerty123

Flash programator si hlada pracu — založil tinecko24

C++ dedenie triedy — založil Marbulinek

Triedy a metódy — založil WhatsThiSs

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý