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 { }