控制 variables table 的值

Variables tables 有很多零碎的設定值
模組需要儲存的簡單資料可以很方便使用 system_settings_form() 的放到 variables

但有些情況之下將 variables 放到資料庫是不方便的
其中一個例子是測試環境和 production 不一樣的時候
deployment 完成之後還要再修改資料庫
步驟多, 又是人手操作, 錯誤便容易發生

例如 gmap 模組需要一個 Google map API key
而該 key 則是 google 根據 domain產生的
例如 uat.joetsuihk.com 和 www.joetsuihk.com 使用的 API key 便不一樣

我的解決方法是在 settings.php 設定 $conf 變數
那資料庫中的 variables 便會被覆寫
例如:

<?php
if($_SERVER['HTTP_HOST']=='uat.joetsuihk.com')
 
$conf['google_map_api'] = 'uat api key';
else
 
$conf['google_map_api'] = 'production api key';
?>

另一個方法是使用 strongarm 模組
配合 ctools 和 features
一樣可以將 variables 收進 version control

Google