如何加载类的时候初始化参数
$this->load->library('pay/pay_factory');我要加载的类,那么CI 如何传递初始化参数的,原生的是这样实现的,$payment_handler = new pay_factory($pay_name,$cfg);
CI 是如何 $pay_name $cfg 这两个传递过去的? 我看了 $this->load->library 手册,第二个参数还是不明白
本帖最后由 actionbi 于 2012-4-2 17:37 编辑
下面是BASEPATH/core/Loader.php中的内容,也就是系统核心类中CI_Loader类
把这两个参数放到数组中传递过去。
$this->load->library('pay/pay_factory',array($pay_name,$cfg));
下面是ci的源码。要么你就自己看,要么关注CI源码阅读这个帖子。近期会更新Loader类
public function library($library = '', $params = NULL, $object_name = NULL)
{
if (is_array($library))
{
foreach ($library as $class)
{
$this->library($class, $params);
}
return;
}
if ($library == '' OR isset($this->_base_classes[$library]))
{
return FALSE;
}
if ( ! is_null($params) && ! is_array($params))
{
$params = NULL;
}
$this->_ci_load_class($library, $params, $object_name);
}
页:
[1]