[ticket/11495] Use constructor arguments over properties in implementation

PHPBB3-11495
This commit is contained in:
Joas Schilling 2013-04-25 18:09:21 +02:00
parent ce07b27765
commit 0def8b7d9c
2 changed files with 47 additions and 22 deletions

View file

@ -55,6 +55,37 @@ abstract class phpbb_tree_nestedset implements phpbb_tree_interface
*/
protected $item_basic_data = array('*');
/**
* Construct
*
* @param phpbb_db_driver $db Database connection
* @param phpbb_lock_db $lock Lock class used to lock the table when moving forums around
* @param string $table_name Table name
* @param string $message_prefix Prefix for the messages thrown by exceptions
* @param string $sql_where Additional SQL restrictions for the queries
* @param array $item_basic_data Array with basic item data that is stored in item_parents
* @param array $columns Array with column names to overwrite
*/
public function __construct(phpbb_db_driver $db, phpbb_lock_db $lock, $table_name, $message_prefix = '', $sql_where = '', $item_basic_data = array(), $columns = array())
{
$this->db = $db;
$this->lock = $lock;
$this->table_name = $table_name;
$this->message_prefix = $message_prefix;
$this->sql_where = $sql_where;
$this->item_basic_data = (!empty($item_basic_data)) ? $item_basic_data : array('*');
if (!empty($columns))
{
foreach ($columns as $column => $name)
{
$column_name = 'column_' . $column;
$this->$column_name = $name;
}
}
}
/**
* Returns additional sql where restrictions
*

View file

@ -17,25 +17,6 @@ if (!defined('IN_PHPBB'))
class phpbb_tree_nestedset_forum extends phpbb_tree_nestedset
{
/**
* Column names in the table
* @var string
*/
protected $column_item_id = 'forum_id';
protected $column_item_parents = 'forum_parents';
/**
* Prefix for the language keys returned by exceptions
* @var string
*/
protected $message_prefix = 'FORUM_NESTEDSET_';
/**
* List of item properties to be cached in $item_parents
* @var array
*/
protected $item_basic_data = array('forum_id', 'forum_name', 'forum_type');
/**
* Construct
*
@ -45,8 +26,21 @@ class phpbb_tree_nestedset_forum extends phpbb_tree_nestedset
*/
public function __construct(phpbb_db_driver $db, phpbb_lock_db $lock, $table_name)
{
$this->db = $db;
$this->lock = $lock;
$this->table_name = $table_name;
parent::__construct(
$db,
$lock,
$table_name,
'FORUM_NESTEDSET_',
'',
array(
'forum_id',
'forum_name',
'forum_type',
),
array(
'item_id' => 'forum_id',
'item_parents' => 'forum_parents',
)
);
}
}