Prechádzať zdrojové kódy

Revert "Add a file for each PDO class (#3297)"

This reverts commit e1ee58816ba76734e4115fc12898b13de665b220.
Alexandre Alapetite 5 rokov pred
rodič
commit
0a2d9b3b54

+ 1 - 1
app/Models/DatabaseDAO.php

@@ -241,7 +241,7 @@ class FreshRSS_DatabaseDAO extends Minz_ModelPdo {
 		$sqlite = null;
 
 		try {
-			$sqlite = new Minz_PdoSqlite('sqlite:' . $filename);
+			$sqlite = new MinzPDOSQLite('sqlite:' . $filename);
 		} catch (Exception $e) {
 			$error = 'Error while initialising SQLite copy: ' . $e->getMessage();
 			return self::stdError($error);

+ 1 - 1
docs/en/developers/Minz/migrations.md

@@ -18,7 +18,7 @@ Example:
 // File: app/migrations/2020_01_11_CreateFooTable.php
 class FreshRSS_Migration_2020_01_11_CreateFooTable {
 	public static function migrate() {
-		$pdo = new Minz_PdoSqlite('sqlite:/some/path/db.sqlite');
+		$pdo = new MinzPDOSQLite('sqlite:/some/path/db.sqlite');
 		$result = $pdo->exec('CREATE TABLE foos (bar TEXT)');
 		if ($result === false) {
 			$error = $pdo->errorInfo();

+ 96 - 5
lib/Minz/ModelPdo.php

@@ -1,9 +1,8 @@
 <?php
-
 /**
  * MINZ - Copyright 2011 Marien Fressinaud
  * Sous licence AGPL3 <http://www.gnu.org/licenses/>
- */
+*/
 
 /**
  * La classe Model_sql représente le modèle interragissant avec les bases de données
@@ -64,12 +63,12 @@ class Minz_ModelPdo {
 						$dsn .= ';port=' . $dbServer['port'];
 					}
 					$driver_options[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES utf8mb4';
-					$this->pdo = new Minz_PdoMysql($dsn . $dsnParams, $db['user'], $db['password'], $driver_options);
+					$this->pdo = new MinzPDOMySql($dsn . $dsnParams, $db['user'], $db['password'], $driver_options);
 					$this->pdo->setPrefix($db['prefix'] . $currentUser . '_');
 					break;
 				case 'sqlite':
 					$dsn = 'sqlite:' . join_path(DATA_PATH, 'users', $currentUser, 'db.sqlite');
-					$this->pdo = new Minz_PdoSqlite($dsn . $dsnParams, $db['user'], $db['password'], $driver_options);
+					$this->pdo = new MinzPDOSQLite($dsn . $dsnParams, $db['user'], $db['password'], $driver_options);
 					$this->pdo->setPrefix('');
 					break;
 				case 'pgsql':
@@ -80,7 +79,7 @@ class Minz_ModelPdo {
 					if (!empty($dbServer['port'])) {
 						$dsn .= ';port=' . $dbServer['port'];
 					}
-					$this->pdo = new Minz_PdoPgsql($dsn . $dsnParams, $db['user'], $db['password'], $driver_options);
+					$this->pdo = new MinzPDOPGSQL($dsn . $dsnParams, $db['user'], $db['password'], $driver_options);
 					$this->pdo->setPrefix($db['prefix'] . $currentUser . '_');
 					break;
 				default:
@@ -116,3 +115,95 @@ class Minz_ModelPdo {
 		self::$sharedCurrentUser = '';
 	}
 }
+
+abstract class MinzPDO extends PDO {
+	public function __construct($dsn, $username = null, $passwd = null, $options = null) {
+		parent::__construct($dsn, $username, $passwd, $options);
+		$this->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
+	}
+
+	abstract public function dbType();
+
+	private $prefix = '';
+	public function prefix() { return $this->prefix; }
+	public function setPrefix($prefix) { $this->prefix = $prefix; }
+
+	private function autoPrefix($sql) {
+		return str_replace('`_', '`' . $this->prefix, $sql);
+	}
+
+	protected function preSql($statement) {
+		if (preg_match('/^(?:UPDATE|INSERT|DELETE)/i', $statement)) {
+			invalidateHttpCache();
+		}
+		return $this->autoPrefix($statement);
+	}
+
+	public function lastInsertId($name = null) {
+		if ($name != null) {
+			$name = $this->preSql($name);
+		}
+		return parent::lastInsertId($name);
+	}
+
+	public function prepare($statement, $driver_options = array()) {
+		$statement = $this->preSql($statement);
+		return parent::prepare($statement, $driver_options);
+	}
+
+	public function exec($statement) {
+		$statement = $this->preSql($statement);
+		return parent::exec($statement);
+	}
+
+	public function query($query, $fetch_mode = null, ...$fetch_mode_args) {
+		$query = $this->preSql($query);
+		return $fetch_mode ? parent::query($query, $fetch_mode, ...$fetch_mode_args) : parent::query($query);
+	}
+}
+
+class MinzPDOMySql extends MinzPDO {
+	public function __construct($dsn, $username = null, $passwd = null, $options = null) {
+		parent::__construct($dsn, $username, $passwd, $options);
+		$this->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
+	}
+
+	public function dbType() {
+		return 'mysql';
+	}
+
+	public function lastInsertId($name = null) {
+		return parent::lastInsertId();	//We discard the name, only used by PostgreSQL
+	}
+}
+
+class MinzPDOSQLite extends MinzPDO {
+	public function __construct($dsn, $username = null, $passwd = null, $options = null) {
+		parent::__construct($dsn, $username, $passwd, $options);
+		$this->exec('PRAGMA foreign_keys = ON;');
+	}
+
+	public function dbType() {
+		return 'sqlite';
+	}
+
+	public function lastInsertId($name = null) {
+		return parent::lastInsertId();	//We discard the name, only used by PostgreSQL
+	}
+}
+
+class MinzPDOPGSQL extends MinzPDO {
+	public function __construct($dsn, $username = null, $passwd = null, $options = null) {
+		parent::__construct($dsn, $username, $passwd, $options);
+		$this->exec("SET NAMES 'UTF8';");
+	}
+
+	public function dbType() {
+		return 'pgsql';
+	}
+
+	protected function preSql($statement) {
+		$statement = parent::preSql($statement);
+		return str_replace(array('`', ' LIKE '), array('"', ' ILIKE '), $statement);
+	}
+}

+ 0 - 52
lib/Minz/Pdo.php

@@ -1,52 +0,0 @@
-<?php
-
-/**
- * MINZ - Copyright 2011 Marien Fressinaud
- * Sous licence AGPL3 <http://www.gnu.org/licenses/>
- */
-
-abstract class Minz_Pdo extends PDO {
-	public function __construct($dsn, $username = null, $passwd = null, $options = null) {
-		parent::__construct($dsn, $username, $passwd, $options);
-		$this->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
-	}
-
-	abstract public function dbType();
-
-	private $prefix = '';
-	public function prefix() { return $this->prefix; }
-	public function setPrefix($prefix) { $this->prefix = $prefix; }
-
-	private function autoPrefix($sql) {
-		return str_replace('`_', '`' . $this->prefix, $sql);
-	}
-
-	protected function preSql($statement) {
-		if (preg_match('/^(?:UPDATE|INSERT|DELETE)/i', $statement)) {
-			invalidateHttpCache();
-		}
-		return $this->autoPrefix($statement);
-	}
-
-	public function lastInsertId($name = null) {
-		if ($name != null) {
-			$name = $this->preSql($name);
-		}
-		return parent::lastInsertId($name);
-	}
-
-	public function prepare($statement, $driver_options = array()) {
-		$statement = $this->preSql($statement);
-		return parent::prepare($statement, $driver_options);
-	}
-
-	public function exec($statement) {
-		$statement = $this->preSql($statement);
-		return parent::exec($statement);
-	}
-
-	public function query($query, $fetch_mode = null, ...$fetch_mode_args) {
-		$query = $this->preSql($query);
-		return $fetch_mode ? parent::query($query, $fetch_mode, ...$fetch_mode_args) : parent::query($query);
-	}
-}

+ 0 - 21
lib/Minz/PdoMysql.php

@@ -1,21 +0,0 @@
-<?php
-
-/**
- * MINZ - Copyright 2011 Marien Fressinaud
- * Sous licence AGPL3 <http://www.gnu.org/licenses/>
- */
-
-class Minz_PdoMysql extends MinzPdo {
-	public function __construct($dsn, $username = null, $passwd = null, $options = null) {
-		parent::__construct($dsn, $username, $passwd, $options);
-		$this->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
-	}
-
-	public function dbType() {
-		return 'mysql';
-	}
-
-	public function lastInsertId($name = null) {
-		return parent::lastInsertId();	//We discard the name, only used by PostgreSQL
-	}
-}

+ 0 - 22
lib/Minz/PdoPgsql.php

@@ -1,22 +0,0 @@
-<?php
-
-/**
- * MINZ - Copyright 2011 Marien Fressinaud
- * Sous licence AGPL3 <http://www.gnu.org/licenses/>
- */
-
-class Minz_PdoPgsql extends Minz_Pdo {
-	public function __construct($dsn, $username = null, $passwd = null, $options = null) {
-		parent::__construct($dsn, $username, $passwd, $options);
-		$this->exec("SET NAMES 'UTF8';");
-	}
-
-	public function dbType() {
-		return 'pgsql';
-	}
-
-	protected function preSql($statement) {
-		$statement = parent::preSql($statement);
-		return str_replace(array('`', ' LIKE '), array('"', ' ILIKE '), $statement);
-	}
-}

+ 0 - 21
lib/Minz/PdoSqlite.php

@@ -1,21 +0,0 @@
-<?php
-
-/**
- * MINZ - Copyright 2011 Marien Fressinaud
- * Sous licence AGPL3 <http://www.gnu.org/licenses/>
- */
-
-class Minz_PdoSqlite extends Minz_Pdo {
-	public function __construct($dsn, $username = null, $passwd = null, $options = null) {
-		parent::__construct($dsn, $username, $passwd, $options);
-		$this->exec('PRAGMA foreign_keys = ON;');
-	}
-
-	public function dbType() {
-		return 'sqlite';
-	}
-
-	public function lastInsertId($name = null) {
-		return parent::lastInsertId();	//We discard the name, only used by PostgreSQL
-	}
-}