Жаль в pdo не храница кол. запросов
Пришлось делать так
<?php
class DB {
protected static $connection;
private static $instance = null;
private $querycount = 0;
private $querytime = 0.0;
public static function getInstance() {
if(is_null(self::$instance)) {
self::$instance = new DB;
}
return self::$instance;
}
public static function connection() {
if (is_null(static::$connection)) {
# Данные от бд
$dbcfg = [
'host' => 'localhost',
'name' => 'myblog',
'user' => 'root',
'pass' => ''
];
# Параметры подключения
$opt = [
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
try {
static::$connection = new PDO("mysql:host=".$dbcfg['host'].";dbname=".$dbcfg['name'], $dbcfg['user'], $dbcfg['pass'], $opt);
} catch (PDOException $e) {
throw new RuntimeException('Не удалось установить соединение с базой данных:%s'. $e->getMessage());
}
}
return static::$connection;
}
public static function prepare($sql, $values = null) {
$stime = microtime(true);
$sth = static::connection()->prepare($sql);
$sth->execute($values);
self::getInstance()->querytime += (microtime(true) - $stime);
self::getInstance()->querycount++;
return $sth;
}
public static function getQueryCount() {
return self::getInstance()->querycount;
}
public static function getQueryTime() {
return self::getInstance()->querytime;
}
public static function __callStatic($method, array $arguments ) {
return call_user_func_array([static::connection(), $method], $arguments);
}
}
?>Мне пришлось добавить getInstance ибо через :: можно назначать только статические переменные
Можно ли както сделать такое?
class MyClass {
private $count;
public static function updateCount() {
self::$count++;
}
-------
MyClass::updateCount();Тойсть без обекта?