我一直在阅读MVC框架如何工作和设计模式本身。我能理解大部分地区,看看它是如何组合在一起的,但在很多例子我见过这样的事情:关于__get和__set在MVC框架设计中的困惑
class Registry
{
private $vars = array();
public function __set($index, $value)
{
$this->vars[$index] = $value;
}
public function __get($index)
{
return $this->vars[$index];
}
}
在很多教程这就是所谓的“注册表”。它通常在init
文件中实例化,并且是调用核心类(路由处理程序,模板等)的一部分,例如在您的控制器中呈现一个视图,如$this->registry->template->render('view');
。
读取字的代码'我'可以看到它的作用,$this->vars[$index] = $value
,从vars[]
阵列取得索引并使其等于$value
。所以,如果我们这样做:
__set(1, 'firstname');
// So now
$vars[1] = 'firstname';
__get(1); // Returns 'firstname'
如果我在这里错了,请纠正我。
微弱我可以看到好处和这是多么有用,但我还不能把握大局。我无法将它与其他组件捆绑在一起,这似乎是一个很大的部分。
我无法围绕我的目标是什么。
不错!谢谢,这是一些令人毛骨悚然的阅读。 – ejx 2013-04-23 17:53:46