1

私は現在、Opencartコードをindex.php. 私はそのほとんどを理解していますが、私が見ているものすべてを理解したいと思っています. しかし、これまでのところ、これを理解することはできません: 読んでください.

$ this- $this->>load は通常、現在のオブジェクトの「load」と呼ばれるメソッドを参照します。

が表示された場合は$this->config->load、Config クラスで「load」メソッドが宣言されているため、問題ありません。

しかし$this->load->model('catalog/category');ControllerProductProductクラスにはまだ「ロード」メソッドが見つからないことがわかります。また、親のコントローラークラスにも見つかりません。

また、「ロード」は標準の 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 に答える