奇怪的請求,我使用配置管理器功能要求配置文件,以便我們只加載所需的變量,而不是數百的設置。要求功能不可訪問功能外
問題是,其中一個文件有一個類和變量集,現在它們包含在內,但不能從主腳本訪問它們。
的函數加載該文件是:
function load($OPT){
if (file_exists(ABSPATH. "includes/config/".$OPT.".config.php")){
require_once(ABSPATH. "includes/config/".$OPT.".config.php");
} else {
echo "Missing configuration script ".$OPT.", application has been halted.";
exit();
}
}
我也試圖通過同一問題
的文件,它包括將有這樣的代碼做到這一點的一類,但凸輪下面
define('COMPANYNAME', 'NAME');
define("IPADDRESS", $_SERVER['REMOTE_ADDR']); // IP Address of accessing user
require_once (ABSPATH . 'includes/classes/mysql.class.php'); // class to manage the database
$DB = new sqlClass;
var_dump($DB);
現在的var_dump在按預期上面的代碼輸出,但是如果喲你做了如下所示的var_dump,它返回null!
require_once (ABSPATH . 'includes/functions/_configmanager.php'); // Class to manage the configuration of the site.
loadconfig("global");
var_dump($DB);
任何人有任何想法如何實現這一目標?
所以你有一個函數,像一個自動加載器,除了加載配置指令。你在一個函數中加載它,但你希望能夠在全局訪問它們。你的解決方案應該很簡單:使用一個類來獲取配置指令。使用自動加載器來包含擴展基本配置類的相應配置類。你所要做的就是像'CFGClass :: get('variable name');'或'$ cfg-> get('variable name')'這樣的操作,這取決於你使用的方法。這當然只是一個簡單的例子。 –
@ N.B。對不起,我沒有按照示例 – Neo
該示例說明不要將文件包含到函數中,請使用類來處理配置變量。不要使用'define('variable','value')'因爲你不能在函數中定義常量和變量,並期望它們在任何地方都能工作。使用1類使用PHP的自動加載函數加載子類,並使用該類來獲取變量值。該課程可以在任何地方訪問,而且不會污染全球範圍。 –