当使用版本控制系统(如git)来控制使用Yii framework的web应用程序时,将密码和其他敏感信息保存在仓库之外的常见做法是什么?显而易见的解决方案是将整个配置文件添加到 .gitignore 中,但这毕竟会使Web应用程序变得没有 backbone 。
wn9m85ua1#
我有一个像这样的设置为一个项目建立与Yii 1,但可以适应Yii 2基本太。Yii 2 advanced已经有了环境功能,并且默认忽略了一些本地配置文件,我认为它应该被改编和使用。无论如何,这里是Yii 1的例子:档案清单:
protected/config/main.php protected/config/params.php protected/config/custom.params.php // ignored protected/config/import.php protected/config/db.common.php protected/config/db.example.php protected/config/db.php // ignored
protected/config/main.php的内容:
protected/config/main.php
<?php $params = require(dirname(__FILE__) . '/params.php'); if (file_exists(dirname(__FILE__) . '/custom.params.php')) { $params = CMap::mergeArray($params, require(dirname(__FILE__) . '/custom.params.php')); } $config= array( // ... 'import' => require(dirname(__FILE__) . '/import.php'), 'modules' => array( // ... ), // application components 'components' => array( // ... 'db' => require(dirname(__FILE__) . '/db.common.php'), ), 'params' => $params, ); return $config;
protected/config/db.common.php的内容:
protected/config/db.common.php
<?php return CMap::mergeArray( array( 'emulatePrepare' => true, 'enableProfiling' => true, 'enableParamLogging' => true, 'charset' => 'utf8', 'tablePrefix' => '', ), require(dirname(__FILE__).'/db.php') );
protected/config/db.example.php的内容:
protected/config/db.example.php
<?php return array( 'connectionString' => 'mysql:host=127.0.0.1;dbname=yii_db', 'username' => 'root', 'password' => '', );
如何使用:
db.php
db.example.php
custom.params.php
db.commpn.php
1条答案
按热度按时间wn9m85ua1#
我有一个像这样的设置为一个项目建立与Yii 1,但可以适应Yii 2基本太。
Yii 2 advanced已经有了环境功能,并且默认忽略了一些本地配置文件,我认为它应该被改编和使用。
无论如何,这里是Yii 1的例子:
档案清单:
protected/config/main.php
的内容:protected/config/db.common.php
的内容:protected/config/db.example.php
的内容:如何使用:
db.php
配置文件,项目将中断db.example.php
复制/粘贴到db.php
并进行自定义custom.params.php
文件db.commpn.php
中,您拥有db组件的默认值,而在db.php
中,您拥有敏感数据