目前,我使用一個名爲$config
的變量,它是一個包含應用程序設置的大關聯數組,例如文件夾配置,數據庫連接,要匹配的URL等等。該變量在其自己的文件system/config.php
中定義,其被主文件system/index.php
包含。
分別位於通過global $config;
即system/request.php
化妝此全局配置變量的這是不好的做法,爲什麼某些系統功能?什麼是處理全局配置的更好方法?
目前,我使用一個名爲$config
的變量,它是一個包含應用程序設置的大關聯數組,例如文件夾配置,數據庫連接,要匹配的URL等等。該變量在其自己的文件system/config.php
中定義,其被主文件system/index.php
包含。
分別位於通過global $config;
即system/request.php
化妝此全局配置變量的這是不好的做法,爲什麼某些系統功能?什麼是處理全局配置的更好方法?
恕我直言,只要有一個全局變量不simulatenously通過不同的工藝修改(即它是隻讀的所有的),它是確定有它在全球範圍內。
模擬只讀變量的方法是用它和一個私有變量,將返回該變量的公共方法來封裝它在一個全局對象。
例子:
class Config {
private $conf = array(/*read from file?*/...);
function getconf() {
//AFAIK, any attempt to write into the returned array will make PHP's
//core to duplicate it, so the original config won't be modified
//(as long as $conf does not contain objects, which are always addressed
//by reference)
return $conf;
}
}
全局變量是不好的做法 –
的代名詞@shuvo所以我應該通過配置所有的系統功能參數?有什麼更好的辦法來處理這個問題? – danijar
@danijar你應該在應用程序的引導階段讀取配置,將它應用到那裏的各種組件,然後將這些組件連接在一起。 –