CodeIgniter 库


CodeIgniter 框架的基本部分是它提供了丰富的库集,间接提高了应用程序的开发速度,系统库位于 system/libraries,我们需要做的就是加载我们想要使用的库,可以如下示加载库:

$this->load->library('class name');

class name是我们要加载的库的名称,如果我们想加载多个库,那么我们可以简单地将一个数组作为参数传递给library()函数,如下图:

$this->load->library(array('email', 'table'));

Library 类


库类位于system/libraries,每个类都有各种功能来简化开发工作。下表显示了库类的名称及其描述。

序号库类和描述
1

基准测试类(Benchmarking Class)

基准测试类始终处于可用状态,可以计算任意两个标记点之间的时间差。

2

缓存类(Caching Class)

该类将缓存页面,以快速访问页面速度。

3

日历类(Calendaring Class)

使用此类,你可以动态创建日历。

4

购物车类(Shopping Cart Class)

使用这个类,你可以在购物车中添加或删除项目。这些项目保存在会话中,并且在用户浏览站点之前将保持活动状态。

5

配置类(Config Class)

可以使用此类检索配置首选项,这个类是自动初始化的。

6

电子邮件类(Email Class)

此类提供电子邮件相关功能,例如发送或回复电子邮件。

7

加密类(Encryption Class)

此类提供双向数据加密功能。

8

文件上传类(File Uploading Class)

此类提供与文件上传相关的功能,你可以设置各种首选项,例如要上传的文件类型、文件大小等。

9

表单验证类(Form Validation Class)

此类提供各种功能来验证表单。

10

FTP类

该类提供了各种与FTP相关的功能,如传输文件以移除服务器、移动、重命名或删除服务器上的文件。

11

图像处理类(Image Manipulation Class)

可以在此类的帮助下完成对图像的操作,例如调整大小、创建缩略图、裁剪、旋转、加水印。

12

输入类(Input Class)

出于安全原因,此类对输入数据进行预处理。

13

语言类(Language Class)

此类用于国际化。

14

加载器类(Loader Class)

此类加载视图文件、驱动程序、助手、模型等元素。

15

迁移类(Migrations Class)

此类提供与数据库迁移相关的功能。

16

输出类(Output Class)

此类将输出发送到浏览器,并缓存该网页。

17

分页类(Pagination Class)

此类向网页添加分页功能。

18

模板解析类(Template Parser Class)

模板解析类可以对视图文件中包含的伪变量执行简单的文本替换。它可以解析简单的变量或变量标签对。

19

安全类(Security Class)

此类包含安全相关功能,如 XSS 过滤、CSRF 等。

20

会话库(Session Library)

此类提供维护应用程序会话的功能。

21

HTML表格(HTML Table)

此类用于从数组或数据库结果自动生成 HTML 表。

22

跟踪类(Trackback Class)

Trackback 类提供使你能够发送和接收 Trackback 数据的函数。

23

排版类(Typography Class)

Typography 类提供了有助于格式化文本的方法。

24

单元测试类(Unit Testing Class)

此类提供对应用程序进行单元测试并生成结果的功能。

25

URI 类(URI Class)

URI 类提供了帮助你从 URI 字符串中检索信息的方法。如果你使用 URI 路由,你还可以检索有关重新路由的段的信息。

26

用户代理类(User Agent Class)

用户代理类提供的函数有助于识别有关访问你站点的浏览器、移动设备或机器人的信息。此外,你可以获得引用信息以及语言和支持的字符集信息。

27

XML-RPC 和 XML-RPC 服务器类(XML-RPC and XML-RPC Server Classes)

CodeIgniter 的 XML-RPC 类允许你将请求发送到另一台服务器,或设置你自己的 XML-RPC 服务器来接收请求。

28

邮编编码类(Zip Encoding Class)

此类用于创建数据的 zip 存档。

创建库


CodeIgniter有丰富的库,你可以在system/libraries文件夹中找到,但CodeIgniter不仅仅限于系统库,你也可以创建自己的库,这些库可以保存在application/libraries文件夹中。你可以通过三种方式创建库:

  • 创建新库

  • 扩展原生库

  • 替换原生库

创建新库

创建新库时应记住以下几点:

  • 文件名必须以大写字母开头,例如Mylibrary.php

  • 类名必须以大写字母开头,例如Mylibrary类

  • 类名和文件名必须匹配。

Mylibrary.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
   
    class Mylibrary {
	
        public function some_function() {
        }
    }
	
/* End of file Mylibrary.php */

加载自定义库

只需在控制器中执行以下行即可加载上述库。

$this->load->library(‘mylibrary’);

mylibrary 是你的图书馆的名字,你可以用小写和大写字母来写。使用没有“.php”扩展名的库名称。加载库后,你还可以调用该类的函数,如下所示。

$this->mylibrary->some_function();

扩展本机库

有时,你可能需要将自己的功能添加到 CodeIgniter 提供的库中。 CodeIgniter 提供了扩展本机库和添加自己的函数的工具。为此,你必须扩展本机库类的类。例如,如果你想扩展Email库,那么可以如下图所示:

Class MY_Email extends CI_Email { 
}

在这里,在上面的例子中,MY_Email 类扩展了本地库的电子邮件类 CI_Email。该库可以通过加载电子邮件库的标准方式加载。将上述代码保存在文件 My_Email.php 中

替换本机库

在某些情况下,你不想以本机库的工作方式使用它,而是想用自己的方式替换它。这可以通过替换本机库来完成。为此,你只需提供与本机库中命名的类名相同的类名。例如,如果你想更换电子邮件类,然后使用如下所示的代码,保存你的文件名Email.php并给一个类名CI_Email。

CI_Email.php

Class CI_Email { 
}