<?php /* Autor: GreyCoffey * Email: greycoffey@gmail.com * GG: 790560 * === * Opis: * Plik zawiera klasy rozszerzające możliwości klas PDO oraz PDOStatement. * Podstawowe funkcje: statystyki dot. czasu wykonania zapytań oraz * dotyczące liczby zapytań. Proszę o uwagi. * === * Użycie: * Podczas tworzenia obiektu PDO, zamieniamy nazwę na MyPDO. * === * Dodatkowe metody (statyczne) w MyPDO: * getType($zmienna) - określa typ zmiennej i podaje odpowiednią stałą PDO, przydatne przy filtrowaniu. * getStats() - zwraca tablicę z wykonanymi zapytaniami. Indeks 'sql' - zapytanie, 'time' - czas wykonania. * getCounter() - zwraca ilość wykonanych zapytań. */ class MyPDO extends PDO { { return PDO::PARAM_INT; return PDO::PARAM_BOOL; return PDO::PARAM_NULL; return PDO::PARAM_STR; } { } { } { return self::$stats; } { return self::$counter; } { self::$counter++; } if (Config::get('mypdostats')=='on') self::startTime(); $result = call_user_func_array('parent::exec', $args); if (Config::get('mypdostats')=='on') self::endTime($sql); self::incCounter(); return $result; } public function prepare($sql) { $result = call_user_func_array('parent::prepare', $args); $res = new MyPDOStatement($result); return $res; } public function query($sql) { if (Config::get('mypdostats')=='on') self::startTime(); $result = call_user_func_array('parent::query', $args); $res = new MyPDOStatement($result); if (Config::get('mypdostats')=='on') self::endTime($sql); self::incCounter(); return $res; } } class MyPDOStatement { private $_object; public function __construct($result) { $this->_object = $result; } public function execute() { if (Config::get('mypdostats')=='on') MyPDO::startTime(); $a = $this->_object; if (Config::get('mypdostats')=='on') MyPDO::endTime($this->_object->queryString); MyPDO::incCounter(); return $result; } public function __call($method, $args) { $a = $this->_object; { } else $result = false; return $result; } } ?>
Config jest moją klasą, jeśli ktoś chce kod, proszę:
<?php /* Autor: GreyCoffey * Email: greycoffey@gmail.com * GG: 790560 * Config czyta zmienne z pliku ini, i udostępnia je innym klasom. */ class Config { { throw new Exception("Plik '$file' nie stnieje."); } if (self::$_loaded==FALSE) { self::$_loaded = TRUE; return TRUE; } return FALSE; } { if (self::$_loaded==FALSE) { self::load(self::$_defaultinifile); } return self::$_config[$name]; } return NULL; } } ?>
Licencja? Możecie rozpowszechniać, modyfikować, sprzedawać, nagrywać, usuwać itp., ale nie mozecie usuwać informacji o autorze (dokumentację tak ;P).