使用魔术方法、全局数组或..初始化.



我下载了一个非常简单的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];
    }
}

如果你的问题只是关于"这个Registry类有什么,它比数组好吗?"那么:这个类只是数组的包装器,它没有用。IMO,这是因为有人认为使用类而不是数组会自动使代码面向对象(这是错误的)。或者他/她只是想给数组起一个花哨的名字,让它的用途更清楚(注册表)。

如果您愿意,您可以删除该类并使用数组,这样就不会丢失任何内容。

或者,如果您想做得更好,可以开始学习依赖注入和DI容器(这是"registry"模式==全局数组的替代模式)。

相关内容

  • 没有找到相关文章

最新更新