开发学院

您的位置:首页>教程>正文

教程正文

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