Я работаю над проектом с использованием mySQL и SQLite DB. Моя цель - сделать код способным работать с обоими типами баз данных. Я разработал код для mySQL, используя класс mysqli
, и теперь я хочу его изменить, чтобы он также работал с объектами SQLite3
.Расширение ответа класса в PHP
SQLite3
класс реализует те же методы, что и mysqli
(по крайней мере, те, которые я использую), но иногда с использованием разных имен. Например, mysqli::fetch_array()
становится SQLite3::fechArray()
. Поэтому я расширяю классы SQLite3 и SQLite3Result
для реализации методов, которые мне нужны. Например:
class SQLite3ResultEx extends SQLite3Result {
public function fetch_array() {
return parent::fetchArray();
}
}
Проблема заключается в том, что я не знаю, как это сделать для расширения ответа на SQLite3
класса, чтобы получить свой собственный SQLite3Response
расширенный класс. Я имею в виду:
class SQLite3Ex extends SQLite3 {
public function __construct($filename, $flags = null, $encryption_key = null) {
return parent::__construct($filename, $flags, $encryption_key);
}
public function query($query) {
$res = parent::query($query);
return $res;
}
}
Теперь $res
является SQLite3Result
объектом, но мне нужно это становится SQLite3ResultEx
объекта (мой собственный класс).
Я могу порекомендовать хорошее чтение: http://php.net/manual/en/intro.pdo.php – Michael
Да, я понимаю. Правильный способ - использовать мой собственный класс PDO, поэтому это гарантирует, что все методы доступны независимо от используемой базы данных. Я постараюсь сделать это. Большое спасибо за ваш ответ. – Pepin
На самом деле я предлагаю использовать классы PDO, встроенные в PHP. Почему бы вам написать его самостоятельно, когда он будет готов к использованию? – Michael