|
首先我们先从libraries本身的方法来看
/system/core/Loader.php 文件
PHP复制代码
public function library ($library, $params = NULL, $object_name = NULL)
{
if (empty($library))
{
return $this;
}
elseif (is_array($library))
{
foreach ($library as $key => $value)
{
if (is_int($key))
{
$this->library($value, $params);
}
else
{
$this->library($key, $params, $value);
}
}
return $this;
}
if ($params !== NULL && ! is_array($params))
{
$params = NULL;
}
$this->_ci_load_library ($library, $params, $object_name);
return $this;
}
复制代码
libraries 这个函数写的很大众化,基本意思就是首先参数是不是空呀。~ 然后就是因为可以传字符串,也可以传数组,既可以加载一个或多个类。然后首先他得判断下是不是数组。然后就是判断下有没有传输初始化参数(既第二个参数),随后就调用了第二个方法 function _ci_load_library
PHP复制代码
$class = ucfirst($class);
// Is this a stock library? There are a few special conditions if so ...
if (file_exists(BASEPATH .'libraries/'.$subdir.$class.'.php'))
{
return $this->_ci_load_stock_library ($class, $subdir, $params, $object_name);
}
复制代码
第二个方法主要看这段代码,ucfirst 文件名大写就是在这里设置的。所以你的文件首字母必须大写。否则就报错喽。
最后就是 function _ci_load_stock_library 函数
PHP复制代码
if (file_exists($path = $path.'libraries/'.$file_path.$library_name.'.php'))
{
// Override
include_once($path);
复制代码
也是部分代码。
首先在第二个方法 _ci_load_stock_library 传入的一个参数 $class. _ci_load_stock_library方法接收后会直接引用你自定义的这个类。
libraries 引用自定义类就是这个样子的了。
注:所以说你可以 SmsClass 也可以 Smsclass 或者 SMSCLASS ,但就是不能 smsClass,个人感觉小驼峰好看,大驼峰不好看。
|
评分
-
查看全部评分
|