<?php
/**
 * OpenSQLManager
 *
 * Free Database manager for Open Source Databases
 *
 * @author 		Timothy J. Warren
 * @copyright	Copyright (c) 2012
 * @link 		https://github.com/aviat4ion/OpenSQLManager
 * @license 	http://philsturgeon.co.uk/code/dbad-license 
 */

// --------------------------------------------------------------------------

/**
 * Connection registry
 * 
 * Decouples the Settings class from the query builder
 * and organizes database connections
 */
class DB_Reg {

	private static $instance;

	/**
	 * Registry access method
	 * 
	 * @param string $key
	 * @return object
	 */
	public static function &get_db($key)
	{
		if ( ! isset(self::$instance[$key]))
		{
			// The constructor sets the instance
			new DBReg($key);
		}

		return self::$instance[$key];
	}

	// --------------------------------------------------------------------------

	/**
	 * Private constructor
	 * @param string $key
	 */
	protected function __construct($key)
	{
		// Get the db connection parameters for the current database
		$db_params = Settings::get_instance()->get_db($key);

		// Set the current key in the registry
		self::$instance[$key] = new Query_Builder($db_params);
	}
}