我目前正在逐行处理Opencart
代码,从index.php
开始。我理解其中的大部分内容,但我想要了解我所看到的所有内容。但到目前为止,我无法弄明白:请继续阅读。
我意识到$this->
引用当前对象,而$ this->加载通常会引用当前对象中名为“load”的方法。
如果我看到$this->config->load
,那我很好,因为Config类声明了'load'方法。
但我在$this->load->model('catalog/category');
类中看到ControllerProductProduct
但在该类中找不到'load'方法,也没有在父类Controller中找到它。
我也知道'load'不是标准的PHP函数,所以我不理解实际引用的对象方法$this->load
。
任何帮助表示感谢。
答案 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);