创建类库和使用原生类库
1、存储位置
你的类库文件应该放置在 application/libraries 目录下,当你初始化类时,CodeIgniter 会在这个目录下寻找这些类
2、命名约定
- 文件名首字母必须大写,例如:Myclass.php
- 类名定义首字母必须大写,例如:class Myclass
- 类名和文件名必须一致
3、类文件原型
defined('BASEPATH') OR exit('No direct script access allowed');
class Myclass {
public function some_method()
{
}
}
4、使用自定义类(控制器)
// 加载类
$this->load->library('myclass');
// 使用类方法
$this->myclass->some_method();
5、使用自定义类传参
$params = array('type' => 'large', 'color' => 'red');
$this->load->library('Myclass', $params);
defined('BASEPATH') OR exit('No direct script access allowed');
class Myclass {
public function __construct($params)
{
// Do something with $params
}
}
6、自定义类中使用 CodeIgniter 资源
class Example_library
{
protected $CI;
public function __construct()
{
$this->CI =& get_instance();
}
public function foo()
{
$this->CI->load->helper('url');
redirect();
}
public function bar()
{
echo $this->CI->config->item('base_url');
}
}
7、替换原生类库
// 替换原生的 Email 类 在 application/libraries/Email.php 创建
class CI_Email
{
}
$this->load->library('email');
8、扩展原生类库
class My_Email extends CI_Email
{
}
如果在扩展原生类时需要使用构造函数,需确保你调用了父类的构造函数
class MY_Email extends CI_Email
{
public function __construct($config = array())
{
parent::__construct($config);
}
}
加载扩展类
$this->load->library('email')
9、设置自定义前缀
application/config/config.php
文件
$config['subclass_prefix'] = 'MY_';