Administrar una aplicación Yii con Git

Si tengo un repository público de Git para mi aplicación Yii. Me pregunto cómo podría mantener las configuraciones de configuration de DB en privado. No puedo ignorar todo el file.

Cree la segunda configuration ignorada y los resultados de fusión:

$config=require_once(dirname(__FILE__).'/protected/config/main.php'); $configIgnonetworking=require_once(dirname(__FILE__).'/protected/config/ignonetworking.php'); require_once($yii); $config = CMap::mergeArray($config, $configIgnonetworking); Yii::createWebApplication($config)->run(); 

Primero … Mantenga en su repository un file protected / config / main.php.dist. 'dist' significa 'distribución'. Este file es un file de configuration normal pero sin datos sensibles. Por ejemplo, puede tener:

 ... 'db' => array( 'connectionString' => 'mysql:host=[[hostname]];dbname=[[database]]', 'emulatePrepare' => true, 'username' => '[[username]]', 'password' => '[[password]]', 'charset' => 'utf8', ), ... 

Tenga en count que su nombre de usuario, contraseña, … no son cosas del proyecto. Esta información solo se refiere a usted y no a su aplicación.

Segundo … Prepare su aplicación para implementar. Por ejemplo, uso phing de esta manera:

 <project name="yourProject" default="install"> <target name="install" description="Prepare application for deploy"> <input propertyname="hostname" defaultValue="localhost" promptChar="?">hostname</input> <input propertyname="database" defaultValue="database" promptChar="?">database</input> <input propertyname="username" defaultValue="root" promptChar="?">username</input> <input propertyname="password" defaultValue="root" promptChar="?">password</input> <copy file="protected/config/main.php.dist" tofile="protected/config/main.php" overwrite="false"> <filterchain> <replacetokens begintoken="[[" endtoken="]]"> <token key="username" value="${username}" /> <token key="password" value="${password}" /> <token key="hostname" value="${hostname}" /> <token key="database" value="${database}" /> </replacetokens> </filterchain> </copy> </target> </project> 

De esta manera, nunca almacenarás la configuration de configuration en tu repository y solo necesitas ejecutar

 $ phing install 

para configurar la aplicación en su máquina. Obviamente necesitas tener instalado el Phing.

No uso Yii, así que no sé su estructura, pero una cosa que sé es que no puedes ignorar la (s) línea (s) de un file con git. Por lo tanto, prefiero que defina su file de configuration real y, en lugar del file real, cree también un file config_sample para publicar y escriba las instrucciones para que funcione en README.md