我下载了一个非常简单的MVC,我正在将它转换为我喜欢它的方式。
我在index.php入口点文件中看到,实例化了一个寄存器对象(下面的类代码),并传递了一个模板和路由器对象,可以在MVC架构中全局访问。
仅使用全局数组有什么区别?那不是更简单吗?或者有更好的方法来处理这个问题吗?
我正在寻找传递这些对象的更好方法。
我已经读过魔术方法并不好,因为它很难调试和重新考虑因素。但是我已经阅读了有关全局数组的相似内容。
Class Registry {
private $vars = array();
public function __set($index, $value) {
$this->vars[$index] = $value;
}
public function __get($index) {
return $this->vars[$index];
}
}
答案 0 :(得分:1)
如果你的问题只是关于这个Registry
类的问题,那么它是否比数组好?"那么:这个类只是一个数组的包装器,它没用。 IMO它是因为有人认为使用类而不是数组会自动使代码对象面向(这是错误的)。或者他/她只是想给阵列一个奇特的名字以使其目的更清晰(注册表)。
如果你愿意,你可以删除该类并使用数组,你不会失去任何东西。
或者如果你想做得更好,你可以开始学习依赖注入和DI容器(这是"注册表" pattern ==全局数组的替代模式)。