saya menggunakan kode berikut, untuk mengambil konfigurasi dari Db :
// file : Yii.php
require(dirname(__FILE__).'/../../framework/YiiBase.php');
class Yii extends YiiBase
{
public static function createWebApplication($config=null)
{
$app = new CWebApplication($config);
$app->setParams(self::_getParams($app->db));
$app->setModules(self::_getModules($app->db));
Yii::app()->sourceLanguage = Yii::app()->params['language'];
return $app;
}
private static function _getParams($db)
{
$params = array();
$data = $db->createCommand("SELECT * FROM app_params")->queryAll();
foreach($data as $item)
{
$params[$item['param']] = $item['value'];
}
return $params;
}
private static function _getModules($db)
{
$modules = array();
$data = $db->createCommand("SELECT * FROM app_modules WHERE is_active='Y'")->queryAll();
foreach($data as $item)
{
$modules[$item['name']] = self::_unserializeData($item['parameters']);
}
return $modules;
}
private static function _unserializeData($str)
{
$q = array();
$arr = explode(';',$str);
foreach($arr as $i)
{
if(empty($i))
continue;
$arrD = explode(':',$i);
$q[$arrD[0]]=$arrD[1];
}
return $q;
}
}
untuk file index.php nya
// change the following paths if necessary
$yii=dirname(__FILE__).'/appsystem/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';
// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
require_once($yii);
Yii::createWebApplication($config)->run();
Untuk file Yii.php nya mendingan diluar folder framework, biar ga ketimpa pas update versi baru …