ugrás a tartalomhoz

PHP OOP: Adatbazis kezelese

zoliky · 2008. Szep. 18. (Cs), 21.59
Szeretnek letrehozni egy osztalyt amely segithet, hogy konyebben tudjam kezelni a mySQL es a PostgreSQL adatbazisokat.

A PHP szkriptem rendelkezik egy "config.php" fajlal, amelyben meg tudom hatarozni az adatbazis tipusat, a felhasznalo nevet, jelszavat, stb... szoval minden ami az SQL connect-hez szukseges.

Gondolom, hogy az osztaly be kell olvasa a fajlot, ugye ? Es az oszes adatokat at kell adjam az osztalyban talalhato valtozoknak ? Itt a kod, valahogy igy kepzeltem el:
<?php
class Database {
    private $dbType;
    private $host;
    private $user;
    private $password;
    private $database;
    
    private function __contruct() {
        require('./config/config.php');
        $this->dbType = $databaseType; // a databaseType valtozo a config.php fajlbol van
    }
}
?>
Letezi egy szebb megoldas ? Jol jonne par tanacs, elege kezdo vagyok OOP teren. KOszonom!
 
1

Központi config

janoszen · 2008. Szep. 18. (Cs), 22.30
Legyen a rendszeredben egy központi konfig infrastruktúra. Avagy legyen mondjuk egy getConfig függvény vagy ConfigReader osztály, amelyik elintézi a configgal való bánást. Mindjárt nem lesz olyan ronda. :)
2

Más megvalósítások

Poetro · 2008. Szep. 18. (Cs), 22.40
Én inkább megnézném a már létező megvalósításokat, és ez alapján csinálnám meg (már ha egyáltalán érdemes megcsinálni). A konfigurációs fájlt pedig SEMMIKÉPPEN ne az osztály olvassa be, hanem kapja meg paraméterből a beállításokat.

Amiket érdemes megnézned:

Adatbázis absztrakciós csomagok:
http://adodb.sourceforge.net/
http://pear.php.net/package/DB
http://pear.php.net/package/MDB
http://pear.php.net/package/MDB2

Keretrendszerek:
http://www.symfony-project.org/
http://framework.zend.com/
http://cakephp.org/
http://solarphp.com/

Érdemes őket megnézni, hogy érdemes-e újat írni, vagy használni egy már sokat tesztelt osztályt / keretrendszert.
3

PHP PDO

zoliky · 2008. Szep. 18. (Cs), 23.56
Ha jol olvastam van valami PDO nevezetu megoldas, csak sajnos nem mukodik PHP 5.1 alatt.
4

Miért ne működne?

janoszen · 2008. Szep. 19. (P), 09.45
Miért ne működne 5.1 alatt? Nekem inkább az volt a bajom vele, hogy néha annyira kretén hibaüzeneteket bír adni hogy iszonyat. (Tudom, ez is jó magyarul volt.) Egyébként én alapvetően azt mondanám, hogy bármiféle adatbáziskezelőt használsz, érdemes elfedni, mert ha mindenhol ott figyelnek pl. a PDO hívások a rendszerben, akkor baromi nehéz lesz átállni később.
9

pdo-t elfedni?

gex · 2008. Szep. 21. (V), 15.21
érdemes elfedni, mert ha mindenhol ott figyelnek pl. a PDO hívások a rendszerben, akkor baromi nehéz lesz átállni később

a pdo-t pont erre találták ki. elfedni a mysql/postgresql/stb hívásokat.
10

Értem én

janoszen · 2008. Szep. 21. (V), 17.10
Értem én hogy arra találták ki, de talán föl se tudom eleveníteni, hogy hányszor volt olyan, hogy le kellett cserélni a PDO-t MySQLi-re és fordítva. Szóval szerintem: elfedni.
11

felhasználástól függ

gex · 2008. Szep. 21. (V), 17.59
attól függ szükség van-e olyan dolgokra a mysqli-ből amit a pdo nem tud. mivel nincs olyan sok tapasztalatom a mysqli-vel ezért nem tudom mik ezek. tudsz konkrét példát mondani, hogy hol volt kevés a pdo? csak hogy bővüljön az én és a köz tudása is.
5

define?

szabo.b.gabor · 2008. Szep. 19. (P), 10.48
én is a központi config fájl mellett voksolok, valamint konstansok definiálása is jó cucc
6

Nem javaslom

janoszen · 2008. Szep. 19. (P), 11.08
Én nem javaslom, mert ha a későbbiekben máshonnan szeretnéd szedni a configot, akkor írhatod át az összes helyen. Érdemes elfedni legalább egy függvénnyel.
7

OK

zoliky · 2008. Szep. 20. (Szo), 00.24
Jo otletnek tartom a kozponti config fajlot, csak nehez eligazodni :) Nem tudom melyik fajl melyiket kell hivogasa. Valahogy kibogozom.
8

Valami hasonlo kodra

zoliky · 2008. Szep. 21. (V), 13.15
Valami hasonlo kodra gondoltatok amikor a kozponti fajlrol beszeltunk ?

http://www.ricocheting.com/scripts/php_mysql_wrapper.php