如何在 Opencart 中加载我的库时传递参数



我需要将参数传递给我的Opencart库类,该类使用$this->load->library('MyLib')加载。 问题是加载器只接受一个参数。 我想做这样的事情:

$this->load->library('MyLib', array('parameters') );

如何在加载库类时将参数数组传递给它?

加载器的 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
    }
}

实际上,您也可以访问注册表中的任何内容,这对于获取各种数据(如配置,会话,购物车等(很有用。

最新更新