Хотел переписать класс Db к PDO со счетчиком. Например сколько был запрос сделано и прочие. Чтобы узнать где находит страница который больше запроса посылает..... Выложу код: Код (PHP): <?php namespace Classes\Core; use Classes\Misc\FileSystem; class Db { static protected $_pdo_instance; /** * @return \PDO * @throws \Exception */ static public function me() { if (is_null(self::$_pdo_instance)) { if (!class_exists('pdo')) throw new \Exception("Отсутствует драйвер PDO"); $db_settings = System::getProperty('database'); if (array_search($db_settings['driver'], \PDO::getAvailableDrivers()) === false) throw new \Exception(sprintf("Отсутствует %s драйвер PDO", $db_settings['driver'])); switch ($db_settings['driver']) { case 'mysql': self::$_pdo_instance = new \PDO('mysql:host=' . $db_settings['host'] . ';dbname=' . $db_settings['dbname'], $db_settings['user'], $db_settings['pass']); break; case 'sqlite': self::$_pdo_instance = new \PDO('sqlite:' . FileSystem::systempath(ENGINE_DIR . '/database.sqlite')); break; } self::$_pdo_instance->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC); self::$_pdo_instance->query("SET NAMES utf8;"); } return self::$_pdo_instance; } static public function isConnected() { return !is_null(self::$_pdo_instance); } protected function __construct() { } } Добавлено спустя 6 минут 11 секунд: Кажись разобралься! Создал новый класс и в нем вызываю ородительский класс PDO и решил проблему! Добавлено спустя 11 минут 15 секунд: Страно зависает сервер если вызвать запрос сделал так но чета он постояно вызывает тот метод а не родителский почему? Код (PHP): <?php namespace Classes\Core; class EnginePDO extends \PDO { protected $countQuery = 0; public function query($sql) { $this->countQuery++; return $this->query($sql); } }
artoodetoo заметил спс=) Забыл о нем! Добавлено спустя 1 минуту 40 секунд: Кому нужен вот! Код (PHP): <?php namespace Classes\Core; class EnginePDO extends \PDO { public $countQuery = 0; public function query($sql) { $this->countQuery++; return parent::query($sql); } public function prepare($statement, $driver_options = array()) { $this->countQuery++; return parent::prepare($statement, $driver_options); } }