2014-04-26 31 views
0

我使用全局數組爲我的應用程序定義某些配置。但到目前爲止,我已經讀過全局變量是不好的做法,應該避免。這個全局是隻讀的,所以我沒有在我的代碼中以任何方式改變它。定義配置設置的正確方法

什麼是定義配置設置的正確方法?

$GLOBALS['config'] = array(
    'mysql' => array(
     'host'  => 'localhost', 
     'username' => 'user', 
     'password' => 'password', 
     'database' => 'database' 
    ), 
    'navigation' => array(
     'Home' => array('/', '/index.php'), 
     'Sign up' => array('/signup', '/signup.php'), 
     'Log in' => array('/login', '/login.php') 
    ) 
); 

回答

0

開始與配置類密鑰 - 集合>值對和getter和setter方法來保存所有的設置。這個類是正常應用程序代碼的一部分。

爲了能夠爲每個環境處理不同的設置,比如在你的榜樣連接參數,使用多個文件。

對於每個環境都存在一個文件夾來存儲所有環境特定的配置文件。

一個存放在這裏的文件是一個腳本:

  • 創建靜態配置對象
  • 將所有配置參數對於環境的值。

應用程序的其他部分使用靜態對象從中獲取的設置。

在不同的文件夾中的文件具有相同的名稱,例如在這種結構:

- config 
    - development 
    - config.php 
    - staging 
    - config.php 
    - production 
    - config.php 

在部署過程中,以包括對環境的配置文件,您部署。我所做的也是將部署腳本放在這些文件夾中。

該設置支持多種環境,您可以在版本控制下保存配置設置的文件。

0

我對PHP沒有太多的想法。但是就OOP而言,您可以創建一個包含靜態只讀變量的類(可能名爲Config)。然後用它們如下

Config.mysqlConfig.navigation

相關問題