From c325eea23ad72c77a66ca4b1f415818e7ddd3ab1 Mon Sep 17 00:00:00 2001 From: Max Pozdeev Date: Mon, 7 Feb 2022 18:22:59 +0300 Subject: [PATCH] make $db->prefix readonly --- src/includes/class.db.mysql.php | 14 +++++--------- src/includes/class.db.mysqli.php | 8 +++----- src/includes/class.db.sqlite3.php | 12 ++++-------- src/includes/class.dbconnection.php | 17 +++++++++++++---- 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/src/includes/class.db.mysql.php b/src/includes/class.db.mysql.php index 0eecc79..e6c096e 100644 --- a/src/includes/class.db.mysql.php +++ b/src/includes/class.db.mysql.php @@ -10,9 +10,8 @@ class DatabaseResult_Mysql extends DatabaseResult_Abstract { /** @var PDOStatement */ - private $q; - - private $affected; + protected $q; + protected $affected; function __construct($dbh, $query, $resultless = 0) { @@ -49,12 +48,9 @@ class DatabaseResult_Mysql extends DatabaseResult_Abstract class Database_Mysql extends Database_Abstract { /** @var PDO */ - private $dbh; - - private $affected = null; - var $lastQuery; - private $dbname; - var $prefix = ''; + protected $dbh; + protected $affected = null; + protected $dbname; function __construct() { diff --git a/src/includes/class.db.mysqli.php b/src/includes/class.db.mysqli.php index 25e9728..9dd3fb4 100644 --- a/src/includes/class.db.mysqli.php +++ b/src/includes/class.db.mysqli.php @@ -10,7 +10,7 @@ class DatabaseResult_Mysql extends DatabaseResult_Abstract { /** @var mysqli_result */ - private $q; + protected $q; function __construct(mysqli $dbh, $query, $resultless = 0) { @@ -32,10 +32,8 @@ class DatabaseResult_Mysql extends DatabaseResult_Abstract class Database_Mysql extends Database_Abstract { /** @var mysqli */ - private $dbh; - - private $dbname; - var $prefix = ''; + protected $dbh; + protected $dbname; function __construct() { diff --git a/src/includes/class.db.sqlite3.php b/src/includes/class.db.sqlite3.php index fcd3a8b..79f627b 100644 --- a/src/includes/class.db.sqlite3.php +++ b/src/includes/class.db.sqlite3.php @@ -9,9 +9,8 @@ class DatabaseResult_Sqlite3 extends DatabaseResult_Abstract { /** @var PDOStatement */ - private $q; - - private $affected; + protected $q; + protected $affected; function __construct($dbh, $query, $resultless = 0) { @@ -48,11 +47,8 @@ class DatabaseResult_Sqlite3 extends DatabaseResult_Abstract class Database_Sqlite3 extends Database_Abstract { /** @var PDO */ - private $dbh; - - private $affected = null; - var $lastQuery; - var $prefix = ''; + protected $dbh; + protected $affected = null; function __construct() { diff --git a/src/includes/class.dbconnection.php b/src/includes/class.dbconnection.php index 4362db4..c7abf8e 100644 --- a/src/includes/class.dbconnection.php +++ b/src/includes/class.dbconnection.php @@ -33,8 +33,14 @@ class DBConnection abstract class Database_Abstract { - var $lastQuery = null; - var $prefix = ''; //TODO: make private + protected static $readonlyProps = ['prefix', 'lastQuery']; + + /** @var string */ + protected $prefix = ''; + + /** @var string */ + protected $lastQuery = ''; + abstract function connect($params); abstract function sq($query, $p = NULL); abstract function sqa($query, $p = NULL); @@ -47,8 +53,11 @@ abstract class Database_Abstract abstract function tableExists($table); abstract function tableFieldExists($table, $field): bool; - function prefix(): string { - return $this->prefix; + function __get(string $propName) { + if ( in_array($propName, self::$readonlyProps) ) { + return $this->{$propName}; + } + throw new Error("Attempt to read undefined property ". get_class($this). "::\$$propName"); } function setPrefix(string $prefix) {