Created
May 16, 2011 15:26
-
-
Save emoa2l/974645 to your computer and use it in GitHub Desktop.
CakePHP dynamic database config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* This is core configuration file. | |
* | |
* Use it to configure core behaviour ofCake. | |
* | |
* PHP versions 4 and 5 | |
* | |
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org) | |
* Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org) | |
* | |
* Licensed under The MIT License | |
* Redistributions of files must retain the above copyright notice. | |
* | |
* @copyright Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org) | |
* @link http://cakephp.org CakePHP(tm) Project | |
* @package cake | |
* @subpackage cake.app.config | |
* @since CakePHP(tm) v 0.2.9 | |
* @license MIT License (http://www.opensource.org/licenses/mit-license.php) | |
*/ | |
/** | |
* In this file you set up your database connection details. | |
* | |
* @package cake | |
* @subpackage cake.config | |
*/ | |
/** | |
* Database configuration class. | |
* You can specify multiple configurations for production, development and testing. | |
* | |
* driver => The name of a supported driver; valid options are as follows: | |
* mysql - MySQL 4 & 5, | |
* mysqli - MySQL 4 & 5 Improved Interface (PHP5 only), | |
* sqlite - SQLite (PHP5 only), | |
* postgres - PostgreSQL 7 and higher, | |
* mssql - Microsoft SQL Server 2000 and higher, | |
* db2 - IBM DB2, Cloudscape, and Apache Derby (http://php.net/ibm-db2) | |
* oracle - Oracle 8 and higher | |
* firebird - Firebird/Interbase | |
* sybase - Sybase ASE | |
* adodb-[drivername] - ADOdb interface wrapper (see below), | |
* odbc - ODBC DBO driver | |
* | |
* You can add custom database drivers (or override existing drivers) by adding the | |
* appropriate file to app/models/datasources/dbo. Drivers should be named 'dbo_x.php', | |
* where 'x' is the name of the database. | |
* | |
* persistent => true / false | |
* Determines whether or not the database should use a persistent connection | |
* | |
* connect => | |
* ADOdb set the connect to one of these | |
* (http://phplens.com/adodb/supported.databases.html) and | |
* append it '|p' for persistent connection. (mssql|p for example, or just mssql for not persistent) | |
* For all other databases, this setting is deprecated. | |
* | |
* host => | |
* the host you connect to the database. To add a socket or port number, use 'port' => # | |
* | |
* prefix => | |
* Uses the given prefix for all the tables in this database. This setting can be overridden | |
* on a per-table basis with the Model::$tablePrefix property. | |
* | |
* schema => | |
* For Postgres and DB2, specifies which schema you would like to use the tables in. Postgres defaults to | |
* 'public', DB2 defaults to empty. | |
* | |
* encoding => | |
* For MySQL, MySQLi, Postgres and DB2, specifies the character encoding to use when connecting to the | |
* database. Uses database default. | |
* | |
*/ | |
class DATABASE_CONFIG { | |
var $default = array( | |
'driver' => 'mysql', | |
'persistent' => false, | |
'login' => '<username>', | |
'password' => '<password>', | |
'database' => '<db>', | |
'prefix' => '', | |
); | |
var $maint = array( | |
'driver' => 'mysql', | |
'persistent' => false, | |
'login' => '<username>', | |
'password' => '<password>', | |
'database' => '<db>', | |
'prefix' => '', | |
); | |
function __construct () | |
{ | |
//set this in your webserver config | |
//i.e. in apache SetEnv DATABASE_HOST "db1.domain.com" | |
if(isset($_SERVER['DATABASE_HOST'])){ | |
$this->default['host'] = $_SERVER['DATABASE_HOST']; | |
$this->maint['host'] = $_SERVER['DATABASE_HOST']; | |
} | |
else | |
{ | |
$this->default['host'] = 'localhost'; | |
$this->maint['host'] = 'localhost'; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I use this in a scenario where on a staging hostI have access to the db directly and thus define the DATBASE_HOST as the hostname of the database server, but from a remote machine I am not able to connect to the database via tcp port 3306. So on that system I use ssh and map localhost 3306 to the remote server 3306 and change my DATABASE_HOST to localhost on my local development webserver.