Это то, что я придумал до сих пор:
class SQLite3_extended extends SQLite3 {
public function query($string){
$result = parent::query($string);
if(is_bool($result))
return $result;
else
return new SQLite3Result_extended($this);
}
}
class SQLite3Result_extended extends SQLite3Result {
public function test(){
echo 'SQLite3Result extended successfully!';
}
}
И я получаю это: Неустранимая ошибка: вызов частного SQLite3Result :: __ construct () из контекста ‘SQLite3_extended
КАК расширить класс SQLite3Result?
Ты не можешь SQLite3Result
класс может быть создан только внутри SQLite3::query()
; нет способа создать экземпляр этого класса или подкласса самостоятельно.
Если вы хотите расширяемый класс базы данных, используйте PDO. Вы можете использовать пользовательский подкласс для заявлений / результатов, вызвав PDO::setAttribute()
с PDO::ATTR_STATEMENT_CLASS
аргумент. В качестве бонуса, это может позволить вам поддерживать движки баз данных, кроме SQLite.
Других решений пока нет …