0
点赞
收藏
分享

微信扫一扫

Codeigniter3学习笔记三(创建类库及使用原生类库)

小北的爹 2022-02-27 阅读 22

创建类库和使用原生类库


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_';
举报

相关推荐

0 条评论