我需要将参数传递给使用$this->load->library('MyLib')
加载的Opencart库类。问题在于加载器仅接受单个参数。我想做这样的事情:
$this->load->library('MyLib', array('parameters') );
如何在加载库类时将参数数组传递给我的库类?
答案 0 :(得分:1)
加载程序的library()
方法仅允许使用单个参数:$route
,但幸运的是,$this->registry
作为单个参数传递给库的构造函数。要传递其他参数,您可以简单地将它们作为属性分配给注册表类,然后再加载库,如下所示:
$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
}
}
实际上,您也可以访问注册表中的任何内容,这对于获取各种数据(例如配置,会话,购物车等)很有用。