[ticket/13487] Add factory for db tool class

This allows us to split up the large file one by one easily.

PHPBB3-13487
This commit is contained in:
Joas Schilling 2015-01-10 15:43:18 +01:00
parent 45ccd2d44a
commit 11b6bc5722
2 changed files with 40 additions and 0 deletions

View file

@ -9,8 +9,13 @@ services:
calls:
- [sql_connect, [%dbal.dbhost%, %dbal.dbuser%, %dbal.dbpasswd%, %dbal.dbname%, %dbal.dbport%, false, %dbal.new_link%]]
# ----- DB Tools -----
dbal.tools.factory:
class: phpbb\db\tools\factory
dbal.tools:
class: phpbb\db\tools\tools
factory: ["@dbal.tools.factory", get]
arguments:
- @dbal.conn

View file

@ -0,0 +1,35 @@
<?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\tools;
/**
* A factory which serves the suitable tools instance for the given dbal
*/
class factory
{
/**
* @param mixed $db_driver
* @param bool $return_statements
* @return \phpbb\db\tools\tools_interface
*/
public function get($db_driver, $return_statements = false)
{
if ($db_driver instanceof \phpbb\db\driver\driver_interface)
{
return new \phpbb\db\tools\tools($db_driver, $return_statements);
}
throw new \InvalidArgumentException('Invalid database driver given');
}
}