我一直在閱讀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