codeigniter 框架的基本部分是它的庫(kù)。它提供了豐富的庫(kù)集,間接提高了應(yīng)用程序的開(kāi)發(fā)速度。系統(tǒng)庫(kù)位于 system/libraries。我們需要做的就是加載我們想要使用的庫(kù)。可以如下所示加載庫(kù):
$this->load->library('class name');
其中 class name 是我們要加載的庫(kù)的名稱。如果我們想加載多個(gè)庫(kù),那么我們可以簡(jiǎn)單地將一個(gè)數(shù)組作為參數(shù)傳遞給 library() 函數(shù),如下所示:
$this->load->library(array('email', 'table'));
圖書館類
庫(kù)類位于 系統(tǒng)/庫(kù)。每個(gè)類都有各種功能來(lái)簡(jiǎn)化開(kāi)發(fā)工作。下表顯示了庫(kù)類的名稱及其說(shuō)明。
庫(kù)類和描述 |
benchmarking class benchmarking 類始終處于活動(dòng)狀態(tài),可以計(jì)算任意兩個(gè)標(biāo)記點(diǎn)之間的時(shí)間差。 |
caching class 該類將緩存頁(yè)面,以快速訪問(wèn)頁(yè)面速度。 |
calendaring class 使用這個(gè)類,你可以動(dòng)態(tài)創(chuàng)建日歷。 |
shopping cart class 使用該類,您可以在購(gòu)物車中添加或移除商品。這些項(xiàng)目保存在會(huì)話中,并在用戶瀏覽網(wǎng)站之前保持??活動(dòng)狀態(tài)。 |
config class 使用此類可以檢索配置首選項(xiàng)。這個(gè)類是自動(dòng)初始化的。 |
email class 該類提供電子郵件相關(guān)功能,例如發(fā)送或回復(fù)電子郵件。 |
encryption class 該類提供雙向數(shù)據(jù)加密功能。 |
file uploading class 該類提供與文件上傳相關(guān)的功能。您可以設(shè)置各種首選項(xiàng),例如要上傳的文件類型、文件大小等。 |
form validation class 該類提供了各種表單驗(yàn)證功能。 |
ftp class 該類提供了各種ftp相關(guān)的功能,如傳輸文件、刪除服務(wù)器、移動(dòng)、重命名或刪除服務(wù)器上的文件。 |
image manipulation class 圖像的操作,如調(diào)整大小、縮略圖創(chuàng)建、裁剪、旋轉(zhuǎn)、水印等都可以在這個(gè)類的幫助下完成。 |
input class 這個(gè)類出于安全原因?qū)斎霐?shù)據(jù)進(jìn)行預(yù)處理。 |
language class 這個(gè)類用于國(guó)際化。 |
loader class 這個(gè)類加載視圖文件、驅(qū)動(dòng)程序、助手、模型等元素 |
migrations class 該類提供與數(shù)據(jù)庫(kù)遷移相關(guān)的功能。 |
output class 這個(gè)類將輸出發(fā)送到瀏覽器,并緩存該網(wǎng)頁(yè)。 |
pagination class 該類為網(wǎng)頁(yè)添加分頁(yè)功能。 |
template parser class 模板解析器類可以對(duì)視圖文件中包含的偽變量執(zhí)行簡(jiǎn)單的文本替換。它可以解析簡(jiǎn)單的變量或變量標(biāo)簽對(duì)。 |
security class 該類包含xss過(guò)濾、csrf等安全相關(guān)功能 |
session library 該類提供維護(hù)應(yīng)用程序會(huì)話的功能。 |
html table 此類用于從數(shù)組或數(shù)據(jù)庫(kù)結(jié)果自動(dòng)生成 html 表格。 |
trackback 類 trackback 類提供使您能夠發(fā)送和接收 trackback 數(shù)據(jù)的函數(shù)。 |
typography class typography class 提供了有助于格式化文本的方法。 |
unit testing class 該類提供對(duì)應(yīng)用程序進(jìn)行單元測(cè)試并生成結(jié)果的功能。 |
uri class uri 類提供了幫助您從 uri 字符串中檢索信息的方法。如果您使用 uri 路由,您還可以檢索有關(guān)重新路由的段的信息。 |
user agent class 用戶代理類提供的功能有助于識(shí)別有關(guān)訪問(wèn)您網(wǎng)站的瀏覽器、移動(dòng)設(shè)備或機(jī)器人的信息。此外,您還可以獲得引用信息以及語(yǔ)言和支持的字符集信息。 |
xml-rpc and xml-rpc server classes codeigniter 的 xml-rpc 類允許您將請(qǐng)求發(fā)送到另一臺(tái)服務(wù)器,或設(shè)置您自己的 xml-rpc 服務(wù)器接收請(qǐng)求。 |
zip encoding class 此類用于創(chuàng)建數(shù)據(jù)的 zip 存檔。 |
創(chuàng)建庫(kù)
codeigniter 擁有豐富的庫(kù)集,您可以在 system/libraries 文件夾中找到這些庫(kù),但 codeigniter 不僅限于系統(tǒng)庫(kù),您還可以創(chuàng)建自己的庫(kù),這些庫(kù)可以存儲(chǔ)在 system/libraries 文件夾中b>應(yīng)用程序/庫(kù) 文件夾。您可以通過(guò)三種方式創(chuàng)建庫(kù)。
- 創(chuàng)建新庫(kù)
- 擴(kuò)展本機(jī)庫(kù)
- 替換原生庫(kù)
創(chuàng)建新庫(kù)
在創(chuàng)建新庫(kù)時(shí)應(yīng)牢記以下事項(xiàng):
- 文件名必須以大寫字母開(kāi)頭,例如mylibrary.php
- 類名必須以大寫字母開(kāi)頭,例如類mylibrary
- 類名和文件名必須匹配。
mylibrary.php
if ( ! defined('basepath')) exit('no direct script access allowed'); class mylibrary { public function some_function() { } } /* end of file mylibrary.php */
加載自定義庫(kù)
只需在控制器中執(zhí)行以下行即可加載上述庫(kù)。
$this->load->library(‘mylibrary’);
mylibrary 是你的圖書館的名字,你可以用小寫和大寫字母來(lái)寫。使用不帶".php"擴(kuò)展名的庫(kù)名。加載庫(kù)后,您也可以調(diào)用該類的函數(shù),如下所示。
$this->mylibrary->some_function();
擴(kuò)展本地庫(kù)
有時(shí),您可能需要將自己的功能添加到 codeigniter 提供的庫(kù)中。 codeigniter 提供了擴(kuò)展本機(jī)庫(kù)和添加自己的函數(shù)的工具。為此,您必須擴(kuò)展本機(jī)庫(kù)類的類。例如,如果您想擴(kuò)展電子郵件庫(kù),則可以按如下所示進(jìn)行:
class my_email extends ci_email { }
這里,在上面的例子中,my_email 類擴(kuò)展了原生庫(kù)的電子郵件類 ci_email。該庫(kù)可以通過(guò)加載電子郵件庫(kù)的標(biāo)準(zhǔn)方式加載。將上述代碼保存在 my_email.php 文件中
替換原生庫(kù)
在某些情況下,您不想以原生庫(kù)的方式使用它,而是想用自己的方式替換它。這可以通過(guò)替換本機(jī)庫(kù)來(lái)完成。為此,您只需提供與本機(jī)庫(kù)中命名的類名相同的類名。例如,如果要替換 email 類,則使用如下所示的代碼。使用 email.php 保存您的文件名,并為 ci_email 指定一個(gè)類名。
email.php
class ci_email { }