PHP MVC全局变量
我有点怀疑,我知道使用全局变量是一种不好的做法 我有一个使用php的小型MVC应用程序,我想在其中创建一个文件。。调用config.php并在其中保存我将在类中使用的全局变量,例如PHP MVC全局变量,php,variables,global,Php,Variables,Global,我有点怀疑,我知道使用全局变量是一种不好的做法 我有一个使用php的小型MVC应用程序,我想在其中创建一个文件。。调用config.php并在其中保存我将在类中使用的全局变量,例如 $config = array (); $config ['db_host'] = 'localhost'; 现在,我想知道在我的应用程序中包含此文件的推荐方式。。我已经实现了一个自动加载器,我可以把它包括在这个 Class Autoload { public function __construct ()
$config = array ();
$config ['db_host'] = 'localhost';
现在,我想知道在我的应用程序中包含此文件的推荐方式。。我已经实现了一个自动加载器,我可以把它包括在这个
Class Autoload
{
public function __construct () {
global $ config;
require_once 'config.php';
}
}
但我真的不知道这是否是一个好的做法
非常感谢您。一般来说,使用全局或单例不是一个好的做法。取而代之的是“依赖项注入”。此模式使您能够使用模拟对象进行测试。本文提供了依赖注入的一些原理和实践。
您可以创建一个
类来代替globals,如下所示
class Autoload {
public $value1;
public $value2;
public static instances = array();
public static function instantiate($className) {
if (isset($instances[$className])) {
return $instances[$className];
}
$newInstance = new $className();
$newInstance->value1 = "foo";
$newInstance->value2 = "bar";
return $instances[$className] = $newInstance;
}
}
您可以继承这个类
,用于更具体的情况,例如,不同的用户类型。这不是一个好的做法。您好,谢谢您的快速回复。你能帮我找到更好的方法吗?我真的想不出另外一个了。再次感谢你?哇。。好文章,我正在读,读完后,你一定会得到我最好的答案。。非常非常感谢这篇优秀的文章