首页 php教程 PHP开发 CodeIgniter学习笔记 Item9--CI中的类库

CodeIgniter学习笔记 Item9--CI中的类库

Dec 29, 2016 am 10:34 AM

CodeIgniter类库

所有的类库文件存放在system/libraries 文件夹。大多数情况下你需要预先在controller中初始化后才能使用它们:

[code]$this->load->library('class name');
登录后复制

class name是你想要使用的类名。例如,要载入“表单验证类”,你可以这样做:

[code]$this->load->library('form_validation');
登录后复制

建立你的类库文件

你的类库文件必须保存在 application/libraries 文件夹,CodeIgniter将在这个文件夹中寻找并初始化它们。

命名约定

文件名首字母大写。例如: Myclass.php

类声明首字母大写。例如: class Myclass

类的名字和文件名应相同。

所有的类应有基础原型

[code]<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Someclass {
    public function some_function()
    {
    }
}
/* End of file Someclass.php */
登录后复制

在所有的Controller 函数中,你可以用以下的标准方式初始化你的类:

[code]$this->load->library('someclass');
登录后复制

当 someclass 是文件名时,不用加上”.php”扩展名.这里名字不分大小写.

一旦你自定义的类加载完毕,你可以通过以下方式调用类,注意使用 小写 的名字:

[code]$this->someclass->some_function();  // 对象的实例名永远都是小写的
登录后复制

当初始化类库时,你可以通过第二个参数动态的传递数组到类的构造函数中去:

[code]$params = array('type' => 'large', 'color' => 'red');
$this->load->library('Someclass', $params);
登录后复制

当你使用这个特性时,你必须为类的构造函数加上参数:

[code]<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Someclass {
    public function __construct($params)
    {
        // Do something with $params
    }
}
?>
登录后复制


要在你自定义的类库中访问CodeIgniter的原始资源,你必须使用 get_instance() 函数。一般来说在你的控制器函数中你可以通过 $this 调用任何可用的CodeIgniter函数:

[code]$this->load->helper('url');
$this->load->library('session');
$this->config->item('base_url');
登录后复制

当你在自定义类中想使用CodeIgniter原始类时,你可以这样做:

首先,定义CodeIgniter对象赋给一个变量:

[code]$CI =& get_instance();
登录后复制

一旦定义某个对象为一个变量,你就可以使用那个变量名取代 $this:

[code]$CI =& get_instance();
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');
登录后复制

替换原始类

简单的将你自己的类命名为与原始类一样就能使CodeIgniter使用这个新类.要使用这个特性,文件名与类声明必须与原始类完全一致。例如,要替换原始的 Email 类库。你必须创建一个文件application/libraries/Email.php, 并按如下方式声明类:

[code]class CI_Email 
{
}
登录后复制

扩展现有类

如果你需要在现有类库中加入一两个新的功能,那就完全不必要替换整个类库文件.你只需简单地扩展(继承)现有的类,扩展一个类就像在类中增加一些例外:

扩展的类必须申明由父类扩展而来。

新扩展的类所在的文件必须以 MY_ 为前缀(这个选项是可配置的)。

例如,要扩展原始类Email类你要建立文件application/libraries/MY_Email.php,并按如下方式在文件中声明:

[code]class MY_Email extends CI_Email 
{
}
登录后复制


要载入扩展子类,你应该使用标准字符名,请不要使用前缀,例如,要载入上文说过的email扩展子类,你应该这样写:

[code]$this->load->library('email');
登录后复制


 以上就是CodeIgniter学习笔记 Item9--CI中的类库的内容,更多相关内容请关注PHP中文网(www.php.cn)!


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在CodeIgniter中实现自定义中间件 如何在CodeIgniter中实现自定义中间件 Jul 29, 2023 am 10:53 AM

如何在CodeIgniter中实现自定义中间件

CodeIgniter中间件:加速应用程序的响应速度和页面渲染 CodeIgniter中间件:加速应用程序的响应速度和页面渲染 Jul 28, 2023 pm 06:51 PM

CodeIgniter中间件:加速应用程序的响应速度和页面渲染

PHP开发:使用 CodeIgniter 实现 MVC 模式和 RESTful API PHP开发:使用 CodeIgniter 实现 MVC 模式和 RESTful API Jun 16, 2023 am 08:09 AM

PHP开发:使用 CodeIgniter 实现 MVC 模式和 RESTful API

在CodeIgniter框架中使用数据库查询构建器(Query Builder)的方法 在CodeIgniter框架中使用数据库查询构建器(Query Builder)的方法 Jul 28, 2023 pm 11:13 PM

在CodeIgniter框架中使用数据库查询构建器(Query Builder)的方法

php如何使用CodeIgniter5框架? php如何使用CodeIgniter5框架? Jun 01, 2023 am 11:21 AM

php如何使用CodeIgniter5框架?

CodeIgniter中间件:提供安全的文件上传和下载功能 CodeIgniter中间件:提供安全的文件上传和下载功能 Aug 01, 2023 pm 03:01 PM

CodeIgniter中间件:提供安全的文件上传和下载功能

如何使用PHP框架CodeIgniter快速搭建一个后台管理系统 如何使用PHP框架CodeIgniter快速搭建一个后台管理系统 Jun 27, 2023 am 09:46 AM

如何使用PHP框架CodeIgniter快速搭建一个后台管理系统

PHP实现框架:CodeIgniter入门教程 PHP实现框架:CodeIgniter入门教程 Jun 18, 2023 pm 10:43 PM

PHP实现框架:CodeIgniter入门教程

See all articles