所有應用程序實例(URL詳細信息)和某些詳細信息所需的main.php
中的一些詳細信息將特定於每個應用程序實例(數據庫詳細信息)。git忽略Yii數據庫詳細信息
是否有任何想法將數據庫細節從protected/config/main.php
中分離出來?
所有應用程序實例(URL詳細信息)和某些詳細信息所需的main.php
中的一些詳細信息將特定於每個應用程序實例(數據庫詳細信息)。git忽略Yii數據庫詳細信息
是否有任何想法將數據庫細節從protected/config/main.php
中分離出來?
只包含來自另一個PHP文件共享的配置:
main.php:
return array
(
....
'components' => array
(
'db' => include('sharedDatabaseConfiguration.php');
)
);
sharedDatabaseConfiguration.php:
return array('host' => ...);
根據存儲文件的位置,您可能需要添加路徑或其他內容。編輯:Btw,Yii也有一個花哨的CMap :: mergeArray()函數,可以做類似的事情(如果你想用另一個配置文件的內容「擴充」它的內容。默認生成的console.php對於這樣一個例子。
你可以在這裏找到一個想法:Manage application configuration in different modes。 基本上它的工作原理是導入不同的PHP文件(你的數據庫配置)和合幷包括array
S:
<?php
return CMap::mergeArray(
require(dirname(__FILE__).'/db-config.php'),
array(
'basePath' => dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name' => 'Page Title',
...
)
);
?>
您可以使用單獨的配置文件(如保護/配置/ production.php),是基於你的主配置文件,以及使用CMap::mergeArray
作爲this answer建議重寫某些設置:
return CMap::mergeArray(
require(dirname(__FILE__) . '/main.php'),
array(
'components' => array(
'db' => array(
'connectionString' => '...',
'username' => '...',
'password' => '...',
),
),
)
);
然後你可以添加protected/config/production.php t o .gitignore。
非常好的解決方案! –