2014-10-18 65 views
1

我正在爲網站開發一個像Magento這樣的安裝腳本,它可以在CodeIgniter的未來項目中重新使用。安裝腳本的目的是爲網站創建一些表格和一些基本數據,例如網站名稱,描述,OG標籤等。通過前端編輯Codeigniter的配置和數據庫設置

有一個先決條件文件說,install-prerequisite.php用戶將通過它進入數據庫主機,數據庫用戶名,數據庫密碼並提交憑證。使用.htaccess從CodeIgniter的index.php中排除先決條件以排除數據庫連接。

RewriteCond $1 !^(index\.php|install-prerequisite\.php|robots\.txt) 

從install-prerequisite.php值已在笨的database.php進行更新。這也需要驗證連接是否成功。這可能嗎?

同樣,config.php可以通過表單中的數據進行編輯?用戶可以從網頁編輯sess_cookie_name,sess_expiration等的值並更新爲config.php

天氣過程:

  1. 更新爲database.php參數編程。
  2. 以編程方式更新config.php參數。
  3. 從install.php中檢查保存在database.php中的參數的連接。

回答

0

我會建議將數據庫名稱,用戶,傳遞的自定義值存儲在全局數據庫中,其中可以通過登錄訪問而不是在文件「install-prerequisite.php」中。通過把這個功能在每一頁的結構或控制器預鉤

https://ellislab.com/codeIgniter/user-guide/database/connecting.html https://ellislab.com/codeIgniter/user-guide/libraries/config.html

然後,你可以通過輸入自己的數據加載用戶的數據庫,並配置和手動連接。

這使您能夠編輯配置而無需編輯配置文件夾中的.php文件(我認爲它很糟糕)並覆蓋了常規配置值。

例如:

$confvalues = $this->db->where('name','dude')->get('user_configs')->row(); 

$db['dude']['hostname'] = "localhost"; 
$db['dude']['username'] = $confvalues->db_user; 
$db['dude']['password'] = $confvalues->db_pass; 
$active_group = "dude"; 

現在,當你去$這個 - >分貝它將使用花花公子的數據庫

$this->config->set_item('sess_cookie_name', $confvalues->sess_cookie);