mirror of
https://github.com/YunoHost-Apps/phpbb_ynh.git
synced 2024-09-03 19:56:36 +02:00
443 lines
7.7 KiB
PHP
443 lines
7.7 KiB
PHP
<?php
|
|
/**
|
|
*
|
|
* This file is part of the phpBB Forum Software package.
|
|
*
|
|
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
|
* @license GNU General Public License, version 2 (GPL-2.0)
|
|
*
|
|
* For full copyright and license information, please see
|
|
* the docs/CREDITS.txt file.
|
|
*
|
|
*/
|
|
|
|
namespace phpbb\db\driver;
|
|
|
|
use \Symfony\Component\DependencyInjection\ContainerInterface;
|
|
|
|
/**
|
|
* Database Abstraction Layer
|
|
*/
|
|
class factory implements driver_interface
|
|
{
|
|
/**
|
|
* @var driver_interface
|
|
*/
|
|
protected $driver = null;
|
|
|
|
/**
|
|
* @var ContainerInterface
|
|
*/
|
|
protected $container;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param ContainerInterface $container A ContainerInterface instance
|
|
*/
|
|
public function __construct(ContainerInterface $container)
|
|
{
|
|
$this->container = $container;
|
|
}
|
|
|
|
/**
|
|
* Return the current driver (and retrieved it from the container if necessary)
|
|
*
|
|
* @return driver_interface
|
|
*/
|
|
protected function get_driver()
|
|
{
|
|
if ($this->driver === null)
|
|
{
|
|
$this->driver = $this->container->get('dbal.conn.driver');
|
|
}
|
|
|
|
return $this->driver;
|
|
}
|
|
|
|
/**
|
|
* Set the current driver
|
|
*
|
|
* @param driver_interface $driver
|
|
*/
|
|
public function set_driver(driver_interface $driver)
|
|
{
|
|
$this->driver = $driver;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_sql_layer()
|
|
{
|
|
return $this->get_driver()->get_sql_layer();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_db_name()
|
|
{
|
|
return $this->get_driver()->get_db_name();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_any_char()
|
|
{
|
|
return $this->get_driver()->get_any_char();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_one_char()
|
|
{
|
|
return $this->get_driver()->get_one_char();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_db_connect_id()
|
|
{
|
|
return $this->get_driver()->get_db_connect_id();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_sql_error_triggered()
|
|
{
|
|
return $this->get_driver()->get_sql_error_triggered();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_sql_error_sql()
|
|
{
|
|
return $this->get_driver()->get_sql_error_sql();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_transaction()
|
|
{
|
|
return $this->get_driver()->get_transaction();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_sql_time()
|
|
{
|
|
return $this->get_driver()->get_sql_time();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_sql_error_returned()
|
|
{
|
|
return $this->get_driver()->get_sql_error_returned();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_multi_insert()
|
|
{
|
|
return $this->get_driver()->get_multi_insert();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function set_multi_insert($multi_insert)
|
|
{
|
|
$this->get_driver()->set_multi_insert($multi_insert);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_row_count($table_name)
|
|
{
|
|
return $this->get_driver()->get_row_count($table_name);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function get_estimated_row_count($table_name)
|
|
{
|
|
return $this->get_driver()->get_estimated_row_count($table_name);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_lower_text($column_name)
|
|
{
|
|
return $this->get_driver()->sql_lower_text($column_name);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_error($sql = '')
|
|
{
|
|
return $this->get_driver()->sql_error($sql);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_buffer_nested_transactions()
|
|
{
|
|
return $this->get_driver()->sql_buffer_nested_transactions();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_bit_or($column_name, $bit, $compare = '')
|
|
{
|
|
return $this->get_driver()->sql_bit_or($column_name, $bit, $compare);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_server_info($raw = false, $use_cache = true)
|
|
{
|
|
return $this->get_driver()->sql_server_info($raw, $use_cache);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_return_on_error($fail = false)
|
|
{
|
|
return $this->get_driver()->sql_return_on_error($fail);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_build_array($query, $assoc_ary = array())
|
|
{
|
|
return $this->get_driver()->sql_build_array($query, $assoc_ary);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_fetchrowset($query_id = false)
|
|
{
|
|
return $this->get_driver()->sql_fetchrowset($query_id);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_transaction($status = 'begin')
|
|
{
|
|
return $this->get_driver()->sql_transaction($status);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_concatenate($expr1, $expr2)
|
|
{
|
|
return $this->get_driver()->sql_concatenate($expr1, $expr2);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_case($condition, $action_true, $action_false = false)
|
|
{
|
|
return $this->get_driver()->sql_case($condition, $action_true, $action_false);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_build_query($query, $array)
|
|
{
|
|
return $this->get_driver()->sql_build_query($query, $array);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_fetchfield($field, $rownum = false, $query_id = false)
|
|
{
|
|
return $this->get_driver()->sql_fetchfield($field, $rownum, $query_id);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_fetchrow($query_id = false)
|
|
{
|
|
return $this->get_driver()->sql_fetchrow($query_id);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function cast_expr_to_bigint($expression)
|
|
{
|
|
return $this->get_driver()->cast_expr_to_bigint($expression);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_nextid()
|
|
{
|
|
return $this->get_driver()->sql_nextid();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_add_num_queries($cached = false)
|
|
{
|
|
return $this->get_driver()->sql_add_num_queries($cached);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_query_limit($query, $total, $offset = 0, $cache_ttl = 0)
|
|
{
|
|
return $this->get_driver()->sql_query_limit($query, $total, $offset, $cache_ttl);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_query($query = '', $cache_ttl = 0)
|
|
{
|
|
return $this->get_driver()->sql_query($query, $cache_ttl);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function cast_expr_to_string($expression)
|
|
{
|
|
return $this->get_driver()->cast_expr_to_string($expression);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false)
|
|
{
|
|
throw new \Exception('Disabled method.');
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_bit_and($column_name, $bit, $compare = '')
|
|
{
|
|
return $this->get_driver()->sql_bit_and($column_name, $bit, $compare);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_freeresult($query_id = false)
|
|
{
|
|
return $this->get_driver()->sql_freeresult($query_id);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_num_queries($cached = false)
|
|
{
|
|
return $this->get_driver()->sql_num_queries($cached);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_multi_insert($table, $sql_ary)
|
|
{
|
|
return $this->get_driver()->sql_multi_insert($table, $sql_ary);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_affectedrows()
|
|
{
|
|
return $this->get_driver()->sql_affectedrows();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_close()
|
|
{
|
|
return $this->get_driver()->sql_close();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_rowseek($rownum, &$query_id)
|
|
{
|
|
return $this->get_driver()->sql_rowseek($rownum, $query_id);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_escape($msg)
|
|
{
|
|
return $this->get_driver()->sql_escape($msg);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_like_expression($expression)
|
|
{
|
|
return $this->get_driver()->sql_like_expression($expression);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_not_like_expression($expression)
|
|
{
|
|
return $this->get_driver()->sql_not_like_expression($expression);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_report($mode, $query = '')
|
|
{
|
|
return $this->get_driver()->sql_report($mode, $query);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function sql_in_set($field, $array, $negate = false, $allow_empty_set = false)
|
|
{
|
|
return $this->get_driver()->sql_in_set($field, $array, $negate, $allow_empty_set);
|
|
}
|
|
}
|