From 319dcc9742f76fa30743b7100704fa62a7f46838 Mon Sep 17 00:00:00 2001 From: Andrey Kutejko Date: Sat, 16 Mar 2019 23:40:54 +0100 Subject: [PATCH] remove unused PDO connection --- ipf/bootstrap.php | 6 ++-- ipf/database.php | 75 ++++++--------------------------------------- ipf/session/app.php | 21 +++++++------ 3 files changed, 23 insertions(+), 79 deletions(-) diff --git a/ipf/bootstrap.php b/ipf/bootstrap.php index 9b6fc24..09ae581 100644 --- a/ipf/bootstrap.php +++ b/ipf/bootstrap.php @@ -43,11 +43,9 @@ class BootstrapProvider implements ServiceProviderInterface $container->register(new TemplateProvider()); $container->register(new ErrorPageProvider()); - $container['databaseConnection'] = function ($c) { - return \IPF_Database::connect(); - }; $container['db'] = $container->factory(function ($c) { - return \IPF_Database::connectDBAL(); + $config = $c['settings']->get('database'); + return \IPF_Database::connectDBAL($config); }); $container->register(new CliProvider()); diff --git a/ipf/database.php b/ipf/database.php index 7320e84..cdabcac 100644 --- a/ipf/database.php +++ b/ipf/database.php @@ -1,39 +1,14 @@ setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); - if ($driver === 'mysql') - $conn->exec('SET NAMES \'utf8\''); - return $conn; - } - - public static function connectDBAL($database=null) - { - if (!$database) { - $database = IPF::get('database'); - } - - $config = new \Doctrine\DBAL\Configuration(); + $config = new Configuration(); $connectionParams = array( 'driver' => 'pdo_' . \PFF\Arr::get($database, 'driver', 'mysql'), @@ -44,49 +19,17 @@ class IPF_Database 'charset' => 'utf8', ); - return \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config); - } - - public static function makeDsnForPDO($driver, $host, $port, $database) - { - switch ($driver) { - case 'sqlite': - case 'sqlite2': - case 'sqlite3': - if ($host == ':memory') { - return 'sqlite::memory:'; - } else { - return $driver . ':' . $database; - } - - case 'mssql': - case 'dblib': - return $driver . ':host=' . $host . ($port ? ':' . $port : '') . ';dbname=' . $database; - - case 'mysql': - case 'informix': - case 'oci8': - case 'oci': - case 'firebird': - case 'pgsql': - case 'odbc': - case 'mock': - case 'oracle': - return $driver . ':host=' . $host . ($port ? ';port=' . $port : '') . ';dbname=' . $database; - - default: - throw new Exception('Unknown driver '.$driver); - } + return DriverManager::getConnection($connectionParams, $config); } - public static function queryOneObject(\Doctrine\DBAL\Connection $connection, $className, $sql, $params = [], $types = []) + public static function queryOneObject(Connection $connection, $className, $sql, $params = [], $types = []) { $stmt = $connection->executeQuery($sql, $params, $types); $stmt->setFetchMode(\PDO::FETCH_CLASS, $className); return $stmt->fetch(); } - public static function queryAllObjects(\Doctrine\DBAL\Connection $connection, $className, $sql, $params = [], $types = []) + public static function queryAllObjects(Connection $connection, $className, $sql, $params = [], $types = []) { $stmt = $connection->executeQuery($sql, $params, $types); return $stmt->fetchAll(\PDO::FETCH_CLASS, $className); diff --git a/ipf/session/app.php b/ipf/session/app.php index 2a00e37..563d164 100644 --- a/ipf/session/app.php +++ b/ipf/session/app.php @@ -1,11 +1,14 @@ backends = [ new CookieSessionBackend(), @@ -101,12 +104,12 @@ class CookieSessionBackend implements SessionBackend class DBSessionBackend implements SessionBackend { - /** @var \Pimple\Container */ + /** @var Container */ private $container; /** @var string */ private $secret_key; - public function __construct(Pimple\Container $container, $secret_key) + public function __construct(Container $container, $secret_key) { $this->container = $container; $this->secret_key = $secret_key; @@ -114,7 +117,7 @@ class DBSessionBackend implements SessionBackend public function getData($key) { - $connection = $this->getDatabaseConnection(); + $connection = $this->getConnection(); $stmt = $connection->prepare('SELECT data FROM session WHERE session_key = :key'); $stmt->bindValue('key', $key, PDO::PARAM_STR); $stmt->execute(); @@ -127,7 +130,7 @@ class DBSessionBackend implements SessionBackend public function save($key, $data) { - $connection = $this->getDatabaseConnection(); + $connection = $this->getConnection(); if ($key) { $stmt = $connection->prepare('UPDATE session SET data = :data, updated_at = NOW() WHERE session_key = :key'); } else { @@ -147,18 +150,18 @@ class DBSessionBackend implements SessionBackend public function delete($key) { - $connection = $this->getDatabaseConnection(); + $connection = $this->getConnection(); $stmt = $connection->prepare('DELETE FROM session WHERE session_key = :key'); $stmt->bindValue('key', $key, PDO::PARAM_STR); $stmt->execute(); } /** - * @return \PDO + * @return Connection */ - private function getDatabaseConnection() + private function getConnection() { - return $this->container['databaseConnection']; + return $this->container['db']; } } -- 2.49.0