Opencart $ this->加载神秘

时间:2013-01-28 07:37:00

标签: php opencart

我目前正在逐行处理Opencart代码,从index.php开始。我理解其中的大部分内容,但我想要了解我所看到的所有内容。但到目前为止,我无法弄明白:请继续阅读。

我意识到$this->引用当前对象,而$ this->加载通常会引用当前对象中名为“load”的方法。

如果我看到$this->config->load,那我很好,因为Config类声明了'load'方法。

但我在$this->load->model('catalog/category');类中看到ControllerProductProduct但在该类中找不到'load'方法,也没有在父类Controller中找到它。

我也知道'load'不是标准的PHP函数,所以我不理解实际引用的对象方法$this->load

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:2)

OpenCart使用魔术方法__get__set使用对象注册表动态执行此操作。您可以在/system/engine/controller.php

中找到此代码

答案 1 :(得分:0)

也许这会为你清楚,看看catalog / index.php第33行(OPencart 1.5.4.1)

// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);