[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как преобразовать класс в статичный
abdula81
Добрый день. Помогите дописать скрипт.
Есть два нормально рабочих класса Log и DB. (Log это обычная таблица логов). БД синглтон (код его урезан)
Планирую создать класс наследник LogPublic, но такой, чтоб он был статичный (видим везде) и перекидывал данные в основной класс Log.
Вот мой код, но там ряд проблем
1) я не уверен, что это не громоздко получилось.
2) сам по себе код дает разные ошибки, особенно в конструкторе, тк БД я передаю через него.

class Log
{
protected $db;

public function __construct($db){
$this->db = $db;
}

public function save($text){
$stmt = $this->db->prepare("INSERT INTO `logs` VALUE (NOW(), ?)");
return $stmt->execute(array($text));
}
}



class LogPublic extends Log
{
public function __construct($db){
parent::__construct($db);
}

public static function saveLog($text){
return parent::save($text);
}
}



class DB
{
protected static $db = null;
private function __construct(){}

public static function instance(){
if(self::$db === null){
self::$db = new PDO('mysql:host=localhost;dbname='.DB_NAME, DB_USER, DB_PASS);
}
return self::$db;
}

static public function prepare($query){
return self::$db->prepare($query);
}
}



//$public_log = new LogPublic(DB::instance());


function test(){
echo LogPublic::saveLog('Hello world'); //это цель.
}

echo test();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.