奇怪的请求,我使用配置管理器功能要求配置文件,以便我们只加载所需的变量,而不是数百的设置。要求功能不可访问功能外
问题是,其中一个文件有一个类和变量集,现在它们包含在内,但不能从主脚本访问它们。
的函数加载该文件是:
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的自动加载函数加载子类,并使用该类来获取变量值。该课程可以在任何地方访问,而且不会污染全球范围。 –