Keresés

Hirdetés

Új hozzászólás Aktív témák

  • mallee

    tag

    válasz DNReNTi #15412 üzenetére

    Gondolatébresztők:

    Database_Connection

    private static $DB_Host = ........: Ennek a helye egy config fájlban lenne és valamilyen okosság mentén kéne beadni az osztályodnak.

    error_reporting(0);: Miért kezel az adatbázis osztályod error reportolást? Mi köze van a kettőnek egymáshoz? (azon túl, hogy az adatbázis-kapcsolat felépítése esetén is jöhet hiba). Ennek inkább egy inicializáló, környezetet beállító, stb php-ben kellene lennie

    echo 'Database connection failed. Code : ' . $DB_Connect->....; Ha csak kiírsz egy üzenetet a képernyőre, attól az alkalmazásod még fut tovább, noha ő arra számított, hogy lesz adatbázis-hozzáférése. Ehelyett használj exception-t

    Mi volt ezzel az osztállyal a célod? Hány helyen és hol hívod meg?

    Database
    Hát ez így nagyon nem jó. Több kisebb osztályba kéne szétvágni az executeSQL-t az SQL parancs típusok alapján, pl Database_Select_SQL valósítaná meg a selectes logikákat, Database_Insert_SQL az inserteset, stb. Ezzel elkerülhetnéd azt a csúnya és nehezen értelmezhető switch-case szerkezetet. Egyébként bár látom, hogy mi akar az osztály célja lenni, mégis nagyon rosszul olvasható a kód. A sok egymásba ágyazott if-else throw exception megoldás helyett inkább azt kéne vizsgálnod a feltételben, hogy sikertelen volt-e a végrehajtás: ha így van, akkor exception, egyébként fusson tovább a kód, pl:
    $stmt = $this->_DB_Connect->prepare($SQL_command);
    if ($stmt === false) { throw new Exception("blablabla"); }
    $parameter_type_list = '';
    foreach($SQL_parameters as $parameter) {

    és nincs utána else!

    Ez sem tökéletes megoldás, de átláthatóbb a kevesebb egymásba ágyazott szerkezet miatt.

    [ Szerkesztve ]

  • cucka

    addikt

    válasz DNReNTi #15412 üzenetére

    Ez így nem igazán oop. Konfig opciók hardkódolva, értelmezhetetlen méretű metódusok, stb. Szóval ezen még dolgoznék.

Új hozzászólás Aktív témák