Есть два нормально рабочих класса 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();