pluginhost: do not connect via legacy DB api until requested
log all initiated legacy database connections
This commit is contained in:
parent
62c37cd697
commit
df5d2a0665
5 changed files with 42 additions and 24 deletions
|
@ -1,10 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
class Auth_Base {
|
class Auth_Base {
|
||||||
private $dbh;
|
|
||||||
private $pdo;
|
private $pdo;
|
||||||
|
|
||||||
function __construct() {
|
function __construct() {
|
||||||
$this->dbh = Db::get();
|
|
||||||
$this->pdo = Db::pdo();
|
$this->pdo = Db::pdo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,29 @@
|
||||||
<?php
|
<?php
|
||||||
class Db implements IDb {
|
class Db implements IDb {
|
||||||
|
|
||||||
|
/* @var Db $instance */
|
||||||
private static $instance;
|
private static $instance;
|
||||||
|
|
||||||
|
/* @var IDb $adapter */
|
||||||
private $adapter;
|
private $adapter;
|
||||||
|
|
||||||
private $link;
|
private $link;
|
||||||
|
|
||||||
|
/* @var PDO $pdo */
|
||||||
private $pdo;
|
private $pdo;
|
||||||
|
|
||||||
private function __construct() {
|
private function __construct() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function __clone() {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
private function legacy_connect() {
|
||||||
|
|
||||||
|
user_error("Legacy connect requested to " . DB_TYPE, E_USER_NOTICE);
|
||||||
|
|
||||||
$er = error_reporting(E_ALL);
|
$er = error_reporting(E_ALL);
|
||||||
|
|
||||||
switch (DB_TYPE) {
|
switch (DB_TYPE) {
|
||||||
|
@ -25,19 +42,31 @@ class Db implements IDb {
|
||||||
exit(100);
|
exit(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->link = $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, defined('DB_PORT') ? DB_PORT : "");
|
||||||
|
|
||||||
|
if (!$this->link) {
|
||||||
|
print("Error connecting through adapter: " . $this->adapter->last_error());
|
||||||
|
exit(101);
|
||||||
|
}
|
||||||
|
|
||||||
|
error_reporting($er);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function pdo_connect() {
|
||||||
|
|
||||||
$db_port = defined('DB_PORT') && DB_PORT ? ';port='.DB_PORT : '';
|
$db_port = defined('DB_PORT') && DB_PORT ? ';port='.DB_PORT : '';
|
||||||
|
|
||||||
$this->pdo = new PDO(DB_TYPE . ':dbname='.DB_NAME.';host='.DB_HOST.$db_port,
|
$this->pdo = new PDO(DB_TYPE . ':dbname='.DB_NAME.';host='.DB_HOST.$db_port,
|
||||||
DB_USER,
|
DB_USER,
|
||||||
DB_PASS);
|
DB_PASS);
|
||||||
|
|
||||||
$this->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
|
|
||||||
|
|
||||||
if (!$this->pdo) {
|
if (!$this->pdo) {
|
||||||
print("Error connecting via PDO.");
|
print("Error connecting via PDO.");
|
||||||
exit(101);
|
exit(101);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
|
||||||
|
|
||||||
if (DB_TYPE == "pgsql") {
|
if (DB_TYPE == "pgsql") {
|
||||||
|
|
||||||
$this->pdo->query("set client_encoding = 'UTF-8'");
|
$this->pdo->query("set client_encoding = 'UTF-8'");
|
||||||
|
@ -52,25 +81,16 @@ class Db implements IDb {
|
||||||
$this->pdo->query("SET NAMES " . MYSQL_CHARSET);
|
$this->pdo->query("SET NAMES " . MYSQL_CHARSET);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->link = $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, defined('DB_PORT') ? DB_PORT : "");
|
|
||||||
|
|
||||||
if (!$this->link) {
|
|
||||||
print("Error connecting through adapter: " . $this->adapter->last_error());
|
|
||||||
exit(101);
|
|
||||||
}
|
|
||||||
|
|
||||||
error_reporting($er);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function __clone() {
|
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function get() {
|
public static function get() {
|
||||||
if (self::$instance == null)
|
if (self::$instance == null)
|
||||||
self::$instance = new self();
|
self::$instance = new self();
|
||||||
|
|
||||||
|
if (!self::$instance->link) {
|
||||||
|
self::$instance->legacy_connect();
|
||||||
|
}
|
||||||
|
|
||||||
return self::$instance;
|
return self::$instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,6 +98,10 @@ class Db implements IDb {
|
||||||
if (self::$instance == null)
|
if (self::$instance == null)
|
||||||
self::$instance = new self();
|
self::$instance = new self();
|
||||||
|
|
||||||
|
if (!self::$instance->pdo) {
|
||||||
|
self::$instance->pdo_connect();
|
||||||
|
}
|
||||||
|
|
||||||
return self::$instance->pdo;
|
return self::$instance->pdo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
class Handler implements IHandler {
|
class Handler implements IHandler {
|
||||||
protected $dbh;
|
|
||||||
protected $pdo;
|
protected $pdo;
|
||||||
protected $args;
|
protected $args;
|
||||||
|
|
||||||
function __construct($args) {
|
function __construct($args) {
|
||||||
$this->dbh = Db::get();
|
|
||||||
$this->pdo = Db::pdo();
|
$this->pdo = Db::pdo();
|
||||||
$this->args = $args;
|
$this->args = $args;
|
||||||
}
|
}
|
||||||
|
|
|
@ -338,7 +338,7 @@ class Handler_Public extends Handler {
|
||||||
}
|
}
|
||||||
|
|
||||||
function globalUpdateFeeds() {
|
function globalUpdateFeeds() {
|
||||||
RPC::updaterandomfeed_real($this->dbh);
|
RPC::updaterandomfeed_real();
|
||||||
|
|
||||||
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", false);
|
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
class PluginHost {
|
class PluginHost {
|
||||||
private $dbh;
|
|
||||||
private $pdo;
|
private $pdo;
|
||||||
private $hooks = array();
|
private $hooks = array();
|
||||||
private $plugins = array();
|
private $plugins = array();
|
||||||
|
@ -63,7 +62,6 @@ class PluginHost {
|
||||||
const KIND_USER = 3;
|
const KIND_USER = 3;
|
||||||
|
|
||||||
function __construct() {
|
function __construct() {
|
||||||
$this->dbh = Db::get();
|
|
||||||
$this->pdo = Db::pdo();
|
$this->pdo = Db::pdo();
|
||||||
|
|
||||||
$this->storage = array();
|
$this->storage = array();
|
||||||
|
@ -91,7 +89,7 @@ class PluginHost {
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_dbh() {
|
function get_dbh() {
|
||||||
return $this->dbh;
|
return Db::get();
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_pdo() {
|
function get_pdo() {
|
||||||
|
|
Loading…
Reference in a new issue