Libraries
CodeIgniter框架的基本部分是它的库。 它提供了丰富的库,间接地提高了开发应用程序的速度。 系统库位于系统/库中。 我们需要做的就是加载我们想要使用的库。 可以加载库,如下所示 -
$this->load->library('class name');
其中class name是我们要加载的库的名称。 如果我们想加载多个库,那么我们可以简单地将一个数组作为参数传递给library()函数,如下所示 -
$this->load->library(array('email', 'table'));
图书馆课程
库类位于system/libraries 。 每个类都有各种功能来简化开发工作。 下表显示了库类的名称及其描述。
SN | 图书馆类和描述 |
---|---|
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 Class 此类提供各种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 Table 此类用于从数组或数据库结果自动生成HTML表。 |
22 | Trackback Class Trackback类提供的功能使您可以发送和接收Trackback数据。 |
23 | Typography Class Typography Class提供了有助于格式化文本的方法。 |
24 | Unit Testing Class 该类提供了对应用程序进行单元测试并生成结果的功能。 |
25 | URI Class URI类提供的方法可帮助您从URI字符串中检索信息。 如果使用URI路由,还可以检索有关重新路由的段的信息。 |
26 | User Agent Class 用户代理类提供的功能有助于识别有关访问您站点的浏览器,移动设备或机器人的信息。 此外,您还可以获取引荐来源信息以及语言和支持的字符集信息。 |
27 | XML-RPC and XML-RPC Server Classes CodeIgniter的XML-RPC类允许您将请求发送到另一台服务器,或者设置您自己的XML-RPC服务器以接收请求。 |
28 | Zip Encoding Class 此类用于创建数据的zip存档。 |
创建库
CodeIgniter拥有丰富的库,您可以在system/libraries文件夹中找到它们,但CodeIgniter不仅限于系统库,您也可以创建自己的库,它们可以存储在application/libraries文件夹中。 您可以通过三种方式创建库。
- 创建新库
- 扩展本机库
- Replace the native library
创建新库
在创建新库时,应牢记以下事项 -
- 文件名必须以大写字母开头,例如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 */
Loading the Custom Library
只需在控制器中执行以下行即可加载上述库。
$this->load->library(‘mylibrary’);
mylibrary是您的库的名称,您可以用小写和大写字母书写它。 使用没有“.php”扩展名的库名称。 加载库后,您还可以调用该类的函数,如下所示。
$this->mylibrary->some_function();
扩展本机库
有时,您可能需要将自己的功能添加到CodeIgniter提供的库中。 CodeIgniter提供了一些工具,您可以通过它扩展本机库并添加自己的功能。 要实现此目的,您必须扩展本机库类的类。 例如,如果您想扩展电子邮件库,那么可以如下所示完成 -
Class MY_Email extends CI_Email {
}
这里,在上面的示例中,MY_Email类正在扩展本机库的电子邮件类CI_Email。 可以通过加载电子邮件库的标准方式加载此库。 将以上代码保存在文件My_Email.php中
替换本机库
在某些情况下,您不希望以其工作方式使用本机库,并希望以您自己的方式替换它。 这可以通过替换本机库来完成。 要实现这一点,您只需要提供与本机库中命名相同的类名。 例如,如果要替换Email class ,请使用如下所示的代码。 使用Email.php保存文件名,并为Email.php提供类名。
Email.php
Class CI_Email {
}