1

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

我意识到这$this->指的是当前对象,并且 $this->load 通常指的是当前对象中称为“加载”的方法。

如果我看到$this->config->load,那么我很好,因为 Config 类声明了一个“加载”方法。

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

我也知道“加载”不是标准的 PHP 函数,所以我不明白$this->load实际指的是哪个对象方法。

任何帮助表示赞赏。

4

2 回答 2

2

OpenCart 使用魔术方法__get__set使用对象注册表动态地执行此操作。你可以找到这个的编码/system/engine/controller.php

于 2013-01-28T12:06:18.180 回答
0

也许这会为您解决问题,请查看 catalog/index.php 第 33 行(OPencart 1.5.4.1)

// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);
于 2013-01-28T10:55:21.747 回答