2012-02-17 74 views
0

我在工作中遇到了一個新的挑戰,正如我遇到的所有挑戰一樣,我有點興奮,但是我在計劃中略微陷入困境。如何根據每個用戶的不同配置文件處理不同的數據庫?

我們有一個CRM解決方案,我們計劃向我們服務器內的其他公司銷售。也就是說,我認爲,爲避免數據庫數量過多,我們應該爲每個在應用程序中註冊的公司分別設置數據庫。

所以,每家公司都將有一個像mycompanie.mywonderfullcrm.com一個子域,因此,該URL指向應該是這樣的\ ROOT_FOLDER \用戶文件夾\ mycompanie \和內,它只有將是「配置」文件然後指向正確的數據庫。

從我的角度來看,它允許輕鬆更新工具來修復錯誤或添加新功能。

我的問題是......我如何在不同的文件夾中使用不同配置文件的核心應用程序文件?

+0

通常我構造我的核心配置類來接受一個值的數組,然後將實際獲得該數組的地方的邏輯分成bootstrapper類。通過這種方式,配置文件名與核心代碼沒有緊密耦合,並且在啓動過程中儘早分配環境常量非常簡單。 – rdlowrey 2012-02-17 15:27:49

回答

0

您可以使用php系統變量$ _SERVER ['HTTP_HOST']來確定http客戶端引用的是哪個公司。那麼你可以從你的文件夾加載配置文件。這裏有一個短暫的未經測試的例子:

$parsedUrl = parse_url($_SERVER['HTTP_HOST']); 
$host = explode('.', $parsedUrl['host']); 
$subdomain = $host[0]; 

/* include config here */ 
include_once('\root_folder\clients\'.$subdomain.'\config.php'); 
+0

請注意'$ _SERVER ['HTTP_HOST']'可能被篡改,所以如果你的代碼依賴於它,你可能會得到意想不到的結果。 – rdlowrey 2012-02-17 15:43:07

相關問題