在 Opencart 中加载我的库时如何传递参数?
How can I pass parameters when loading my library in Opencart?
我需要将参数传递到使用 $this->load->library('MyLib')
加载的 Opencart 库 class。问题是加载器只接受一个参数。我想做这样的事情:
$this->load->library('MyLib', array('parameters') );
如何在我的库 class 加载时将参数数组传递给它?
加载器的 library()
方法只允许一个参数:$route
,但幸运的是 $this->registry
作为单个参数传递给库的构造函数。要传递额外的参数,您可以简单地将它们作为属性分配给注册表 class,然后再像这样加载您的库:
$params = [
'param_1' => 'abc',
'param_2' => 'def'
];
$this->registry->set('MyLib_params', $params);
// now load your library
$this->load->library('MyLib');
然后,您可以像这样在库构造函数中访问 属性:
class MyLib {
public function __constructor($registry) {
$this->params = $registry->get('MyLib_params');
// do stuff with $this->params
}
}
实际上,您也可以在那里访问注册表中的任何内容,这对于获取配置、会话、购物车等各种数据很有用。
我需要将参数传递到使用 $this->load->library('MyLib')
加载的 Opencart 库 class。问题是加载器只接受一个参数。我想做这样的事情:
$this->load->library('MyLib', array('parameters') );
如何在我的库 class 加载时将参数数组传递给它?
加载器的 library()
方法只允许一个参数:$route
,但幸运的是 $this->registry
作为单个参数传递给库的构造函数。要传递额外的参数,您可以简单地将它们作为属性分配给注册表 class,然后再像这样加载您的库:
$params = [
'param_1' => 'abc',
'param_2' => 'def'
];
$this->registry->set('MyLib_params', $params);
// now load your library
$this->load->library('MyLib');
然后,您可以像这样在库构造函数中访问 属性:
class MyLib {
public function __constructor($registry) {
$this->params = $registry->get('MyLib_params');
// do stuff with $this->params
}
}
实际上,您也可以在那里访问注册表中的任何内容,这对于获取配置、会话、购物车等各种数据很有用。