我是php的新手。但我对oo语言有很好的理解。我在OpenCart应用程序(https://www.opencart.com/)中遇到这些php代码。
class ControllerCustomerCustomerGroup extends Controller {
private $error = array();
public function index() {
$this->load->language('customer/customer_group');
$this->document->setTitle($this->language->get('heading_title'));
$this->load->model('customer/customer_group');
$this->getList();
}
我明白$这意味着当前的对象。但是在这个类中,我没有看到加载或文档属性/函数。我知道这个类继承自Controller类。但我也没有在Controller类中看到这两个属性/函数。
以下是完整的Controller超类:
<?php
abstract class Controller {
protected $registry;
public function __construct($registry) {
$this->registry = $registry;
}
public function __get($key) {
return $this->registry->get($key);
}
public function __set($key, $value) {
$this->registry->set($key, $value);
}
}
答案 0 :(得分:0)
我认为你在谈论Codeigniter框架。如果您仔细查看他们的controller
课程,您会找到
$this->load =& load_class('Loader', 'core');
这一行。这一行实际上加载了Loader
和core
类。
现在,如果您查看Loader
类,您将看到加载器具有加载模型的model
方法。这就是它在内部的运作方式。