CodeIgniter教程:类库
类库是CodeIgniter框架的基本组成部分。CodeIgniter提供了丰富的库,间接提高了开发应用程序的速度。系统库位于system/libraries,开发者需要做的就是加载想要使用的库。可以如下所示加载库
$this->load->library('class name');
其中class name是我们要加载库的名称。如果我们想要加载多个库,那么我们可以简单地将一个数组作为参数传递给library()函数,如下所示
$this->load->library(array('email', 'table'));
内置类库
CodeIgniter框架内置了需多系统库,如下所示:
Benchmarking类:基准测试类始终处于活动状态,使得任何两个标记点之间的时间差都可以计算出来。
缓存类:缓存类将缓存页面,以加快访问页面的速度。
日历类:使用此类,您可以动态创建日历。
购物车类:使用此类,您可以在购物车中添加或删除商品。
配置类:使用此类可以检索配置项。这个类是自动初始化的。
Email类:提供与电子邮件相关的功能,如发送或回复电子邮件。
加密类:提供双向数据加密功能。
文件上传类:提供与文件上传相关功能。您可以设置各种首选项,如要上传的文件类型、文件大小等。
表单验证类:提供各种函数来验证表单。
FTP类:提供了各种与文件传输协议相关的功能,如将文件传输到服务器,移动,重命名或删除服务器上的文件。
图像处理类:像调整大小、创建缩略图、裁剪、旋转、水印等图像操作都可以在这个类的帮助下完成。
输入类:出于安全原因,该类预处理输入数据。
语言类:用于国际化。
加载类:加载视图文件、驱动程序、助手、模型等元素。
迁移类:提供与数据库迁移相关的功能。
输出类:将输出发送到浏览器,并缓存该网页。
分页类:此类向网页添加分页功能。
模板解析类:模板解析器类可以对视图文件中包含的伪变量执行简单的文本替换。
安全类:包含安全相关的功能,如XSS过滤,CSRF等。
会话库:提供维护应用程序会话的功能。
HTML表格类:用于从数组或数据库结果中自动生成HTML表。
引用类:提供了使您能够发送和接收引用通告数据的功能。
排版类:提供了帮助设置文本格式的方法。
单元测试类:提供单元测试应用程序和生成结果的功能。
URI类:提供帮助您从URI字符串中检索信息的方法。如果使用URI路由,还可以检索关于重新路由的段的信息。
用户代理类:提供有助于识别访问您站点的浏览器、移动设备或机器人信息的功能。
XML-RPC和XML-RPC服务器类:允许您向另一台服务器发送请求,或者设置您自己的XML-RPC服务器来接收请求。
Zip类:用于创建数据的zip存档。
创建类库
除了使用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提供了扩展库和添加自定义函数的功能。要实现这一点,您需要使用extends来扩展内置类。例如,如果您想扩展Email库,可以使用下面的语句:
Class MY_Email extends CI_Email { }
在上面的例子中,MY_Email类扩展了内置的CI_Email类。这个库可以通过加载email库的标准方式来加载。将上述代码保存在My_Email.php文件中
替换已有类库
在某些情况下,您不想按照内置类库的工作方式使用它,而是想用自己的方式替换它。这可以通过替换内置类库来实现。为了实现这一点,您只需要创建一个与在内置类库中相同名字的类。例如,如果您想替换Email类,那么使用如下所示的代码。将您的文件名保存到Email.php,并为CI_Email指定一个类名。
Email.php Class CI_Email { }