Skip to content
Snippets Groups Projects
Database.php 2.46 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php namespace Config;
    
    /**
     * Database Configuration
     *
     * @package Config
     */
    
    class Database extends \CodeIgniter\Database\Config
    {
    	/**
    	 * The directory that holds the Migrations
    	 * and Seeds directories.
    	 *
    	 * @var string
    	 */
    	public $filesPath = APPPATH . 'Database/';
    
    	/**
    	 * Lets you choose which connection group to
    	 * use if no other is specified.
    	 *
    	 * @var string
    	 */
    	public $defaultGroup = 'default';
    
    	/**
    	 * The default database connection.
    	 *
    	 * @var array
    	 */
    	public $default = [
    		'DSN'      => '',
    		'hostname' => 'localhost',
    		'username' => '',
    		'password' => '',
    		'database' => '',
    		'DBDriver' => 'MySQLi',
    		'DBPrefix' => '',
    		'pConnect' => false,
    		'DBDebug'  => (ENVIRONMENT !== 'production'),
    		'cacheOn'  => false,
    		'cacheDir' => '',
    		'charset'  => 'utf8',
    		'DBCollat' => 'utf8_general_ci',
    		'swapPre'  => '',
    		'encrypt'  => false,
    		'compress' => false,
    		'strictOn' => false,
    		'failover' => [],
    		'port'     => 3306,
    	];
    
    	/**
    	 * This database connection is used when
    	 * running PHPUnit database tests.
    	 *
    	 * @var array
    	 */
    	public $tests = [
    		'DSN'      => '',
    		'hostname' => '127.0.0.1',
    		'username' => '',
    		'password' => '',
    		'database' => ':memory:',
    		'DBDriver' => 'SQLite3',
    		'DBPrefix' => 'db_',  // Needed to ensure we're working correctly with prefixes live. DO NOT REMOVE FOR CI DEVS
    		'pConnect' => false,
    		'DBDebug'  => (ENVIRONMENT !== 'production'),
    		'cacheOn'  => false,
    		'cacheDir' => '',
    		'charset'  => 'utf8',
    		'DBCollat' => 'utf8_general_ci',
    		'swapPre'  => '',
    		'encrypt'  => false,
    		'compress' => false,
    		'strictOn' => false,
    		'failover' => [],
    		'port'     => 3306,
    	];
    
    	//--------------------------------------------------------------------
    
    	public function __construct()
    	{
    		parent::__construct();
    
    		// Ensure that we always set the database group to 'tests' if
    		// we are currently running an automated test suite, so that
    		// we don't overwrite live data on accident.
    		if (ENVIRONMENT === 'testing')
    		{
    			$this->defaultGroup = 'tests';
    
    			// Under Travis-CI, we can set an ENV var named 'DB_GROUP'
    			// so that we can test against multiple databases.
    			if ($group = getenv('DB'))
    			{
    				if (is_file(TESTPATH . 'travis/Database.php'))
    				{
    					require TESTPATH . 'travis/Database.php';
    
    					if (! empty($dbconfig) && array_key_exists($group, $dbconfig))
    					{
    						$this->tests = $dbconfig[$group];
    					}
    				}
    			}
    		}
    	}
    
    	//--------------------------------------------------------------------
    
    }