校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > CI框架實現(xiàn)創(chuàng)建自定義類庫的方法

CI框架實現(xiàn)創(chuàng)建自定義類庫的方法

熱門標(biāo)簽:蘇州外呼系統(tǒng)有效果嗎 地圖標(biāo)注怎么做商戶驗證 亳州企業(yè)外呼系統(tǒng) 打開百度地圖標(biāo)注 兼職做地圖標(biāo)注好賺錢嗎 海南外呼系統(tǒng)方案 400 電話 辦理 智能電銷語音機器人資訊 山東電銷卡外呼系統(tǒng)原理是什么

本文實例講述了CI框架實現(xiàn)創(chuàng)建自定義類庫的方法。分享給大家供大家參考,具體如下:

當(dāng)我們使用 “類庫” 這個詞的時候,通常我們指的是位于 libraries 這個目錄下的那些類。

接下來我們將介紹 如何在 application/libraries 目錄下創(chuàng)建你自己的類庫,和全局的框架類庫獨立開來。

另外,如果你希望在現(xiàn)有的類庫中添加某些額外功能,CodeIgniter 允許你擴展原生的類, 或者你甚至可以在你的 application/libraries 目錄下放置一個和原生的類庫同名的文件 完全替代它。

總結(jié)起來:

  • 你可以創(chuàng)建一個全新的類庫,
  • 你可以擴展原生的類庫,
  • 你可以替換掉原生的類庫。

注:除了數(shù)據(jù)庫類不能被擴展或被你的類替換外,其他的類都可以。

存儲位置

你的類庫文件應(yīng)該放置在 application/libraries 目錄下,當(dāng)你初始化類時,CodeIgniter 會在這個目錄下尋找這些類。

命名約定

  • 文件名首字母必須大寫,例如:Myclass.php
  • 類名定義首字母必須大寫,例如:class Myclass
  • 類名和文件名必須一致

類文件

類應(yīng)該定義成如下原型:

?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Someclass {
 public function some_method()
 {
 }
}

使用你的類

在你的 控制器 的任何方法中使用如下代碼初始化你的類:

$this->load->library('someclass');

其中,someclass 為文件名,不包括 .php 文件擴展名。文件名可以寫成首字母大寫, 也可以寫成全小寫,CodeIgniter 都可以識別。

一旦加載,你就可以使用小寫字母名稱來訪問你的類:

$this->someclass->some_method();

初始化類時傳入?yún)?shù)

在加載類庫的時候,你可以通過第二個參數(shù)動態(tài)的傳遞一個數(shù)組數(shù)據(jù),該數(shù)組將被傳到 你的類的構(gòu)造函數(shù)中:

$params = array('type' => 'large', 'color' => 'red');
$this->load->library('someclass', $params);

如果你使用了該功能,你必須在定義類的構(gòu)造函數(shù)時加上參數(shù):

?php defined('BASEPATH') OR exit('No direct script access allowed');
class Someclass {
 public function __construct($params)
 {
  // Do something with $params
 }
}

你也可以將參數(shù)保存在配置文件中來傳遞,只需簡單的創(chuàng)建一個和類文件同名的配置文件, 并保存到你的 application/config/ 目錄下。要注意的是,如果你使用了上面介紹的方法 動態(tài)的傳遞參數(shù),配置文件將不可用。

在你的類庫中使用 CodeIgniter 資源

在你的類庫中使用 get_instance() 函數(shù)來訪問 CodeIgniter 的原生資源,這個函數(shù)返回 CodeIgniter 超級對象。

通常情況下,在你的控制器方法中你會使用 $this 來調(diào)用所有可用的 CodeIgniter 方法:

$this->load->helper('url');
$this->load->library('session');
$this->config->item('base_url');

但是 $this 只能在你的控制器、模型或視圖中直接使用,如果你想在你自己的類中使用 CodeIgniter 類,你可以像下面這樣做:

首先,將 CodeIgniter 對象賦值給一個變量:

$CI = get_instance();

一旦你把 CodeIgniter 對象賦值給一個變量之后,你就可以使用這個變量來 代替 $this

$CI = get_instance();

$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');

注:

上面的 get_instance() 函數(shù)通過引用來傳遞:

$CI = get_instance();

這是非常重要的,引用賦值允許你使用原始的 CodeIgniter 對象,而不是創(chuàng)建一個副本。

既然類庫是一個類,那么我們最好充分的使用 OOP 原則,所以,為了讓類中的所有方法都能使用 CodeIgniter 超級對象,建議將其賦值給一個屬性:

class Example_library {
 protected $CI;
 // We'll use a constructor, as you can't directly call a function
 // from a property definition.
 public function __construct()
 {
  // Assign the CodeIgniter super-object
  $this->CI = get_instance();
 }
 public function foo()
 {
  $this->CI->load->helper('url');
  redirect();
 }
 public function bar()
 {
  echo $this->CI->config->item('base_url');
 }
}

使用你自己的類庫替換原生類庫

簡單的將你的類文件名改為和原生的類庫文件一致,CodeIgniter 就會使用它替換掉原生的類庫。 要使用該功能,你必須將你的類庫文件和類定義改成和原生的類庫完全一樣,例如, 要替換掉原生的 Email 類的話,你要新建一個 application/libraries/Email.php 文件, 然后定義定義你的類:

class CI_Email {
}

注意大多數(shù)原生類都以 CI_ 開頭

要加載你的類庫,和標(biāo)準(zhǔn)的方法一樣:

$this->load->library('email');

注:

注意數(shù)據(jù)庫類不能被你自己的類替換掉。

擴展原生類庫

如果你只是想往現(xiàn)有的類庫中添加一些功能,例如增加一兩個方法, 這時替換整個類感覺就有點殺雞用牛刀了。在這種情況下,最好的方法是 擴展類庫。擴展一個類和替換一個類差不多,除了以下幾點:

  • 類在定義時必須繼承自父類。
  • 你的新類名和文件名必須以 MY_ 為前綴(這個可配置,見下文)

例如,要擴展原生的 Email 類你需要新建一個文件命名為 application/libraries/MY_Email.php , 然后定義你的類:

class MY_Email extends CI_Email {
}

如果你需要在你的類中使用構(gòu)造函數(shù),確保你調(diào)用了父類的構(gòu)造函數(shù):

class MY_Email extends CI_Email {
 public function __construct($config = array())
 {
  parent::__construct($config);
 }
}

注:

并不是所有的類庫構(gòu)造函數(shù)的參數(shù)都是一樣的,在對類庫擴展之前 先看看它是怎么實現(xiàn)的。

加載你的擴展類

要加載你的擴展類,還是使用和通常一樣的語法。不用包含前綴。例如, 要加載上例中你擴展的 Email 類,你可以使用:

$this->load->library('email');

一旦加載,你還是和通常一樣使用類變量來訪問你擴展的類,以 email 類為例, 訪問它的方法如下:

$this->email->some_method();

設(shè)置自定義前綴

要設(shè)置你自己的類的前綴,你可以打開 application/config/config.php 文件, 找到下面這項:

$config['subclass_prefix'] = 'MY_';

注:所有原始的 CodeIgniter 類庫都以 CI_ 開頭,所以請不要使用這個 作為你的自定義前綴。

更多關(guān)于CodeIgniter相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結(jié)》、《Zend FrameWork框架入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家基于CodeIgniter框架的PHP程序設(shè)計有所幫助。

您可能感興趣的文章:
  • CodeIgniter配置之a(chǎn)utoload.php自動加載用法分析
  • CI框架中類的自動加載問題分析
  • CI框架自動加載session出現(xiàn)報錯的解決辦法
  • 詳談配置phpstorm完美支持Codeigniter(CI)代碼自動完成(代碼提示)
  • CodeIgniter自定義控制器MY_Controller用法分析
  • CodeIgniter實現(xiàn)從網(wǎng)站抓取圖片并自動下載到文件夾里的方法
  • CodeIgniter采用config控制的多語言實現(xiàn)根據(jù)瀏覽器語言自動轉(zhuǎn)換功能
  • 讓CodeIgniter數(shù)據(jù)庫緩存自動過期的處理的方法
  • codeigniter自帶數(shù)據(jù)庫類使用方法說明
  • 解析CodeIgniter自定義配置文件
  • php框架CI(codeigniter)自動加載與自主創(chuàng)建對象操作實例分析

標(biāo)簽:金華 綏化 溫州 安康 呼倫貝爾 紹興 萊蕪 清遠(yuǎn)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《CI框架實現(xiàn)創(chuàng)建自定義類庫的方法》,本文關(guān)鍵詞  框架,實現(xiàn),創(chuàng)建,自定義,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《CI框架實現(xiàn)創(chuàng)建自定義類庫的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于CI框架實現(xiàn)創(chuàng)建自定義類庫的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    精品一区二区在线免费观看| 欧美日韩一区二区三区视频| 色综合天天综合给合国产| 欧美少妇bbb| 久久夜色精品国产噜噜av| 一区二区在线观看免费| 国产精品99久久久久久有的能看 | 欧美精品在线视频| 国产欧美一区二区三区网站| 青娱乐精品在线视频| 91麻豆.com| 国产丝袜欧美中文另类| 麻豆精品在线播放| 欧美午夜片在线看| 亚洲欧美一区二区三区极速播放| 极品销魂美女一区二区三区| 欧美电影一区二区三区| 亚洲一区av在线| 欧美日韩久久一区二区| 中文字幕免费不卡| 国产91丝袜在线播放| 久久久久久久久久久99999| 免费精品视频最新在线| 日韩一区二区免费视频| 日日摸夜夜添夜夜添亚洲女人| 日本二三区不卡| 亚洲视频一区在线| 91在线小视频| 中文字幕一区二区三中文字幕| 国产成人在线视频网站| 久久综合丝袜日本网| 国产精品自在在线| 久久久久久99久久久精品网站| 久久精品国产精品亚洲红杏| 日韩女优av电影| 久久99久久久久久久久久久| 欧美变态口味重另类| 裸体健美xxxx欧美裸体表演| 日韩欧美色电影| 国产一区二区h| 欧美国产精品中文字幕| 99在线视频精品| 亚洲免费av在线| 欧美日韩国产欧美日美国产精品| 日韩精品一二三四| 久久久久国产精品人| 成人夜色视频网站在线观看| 最新不卡av在线| 欧美自拍偷拍午夜视频| 日日欢夜夜爽一区| 精品国产三级电影在线观看| 国产成人精品三级| 亚洲猫色日本管| 久久蜜桃一区二区| 99久久99久久精品国产片果冻| 亚洲男女一区二区三区| 欧美久久一二区| 国产精品996| 夜夜操天天操亚洲| 日韩欧美美女一区二区三区| 成人av在线资源网站| 亚洲第一久久影院| 国产色婷婷亚洲99精品小说| 91在线播放网址| 免费人成网站在线观看欧美高清| 国产亚洲综合av| 欧美亚洲动漫制服丝袜| 国产一区二区视频在线| 亚洲在线免费播放| 亚洲精品一线二线三线无人区| 不卡的电视剧免费网站有什么| 亚洲香肠在线观看| 久久精品夜夜夜夜久久| 欧美亚洲国产bt| 顶级嫩模精品视频在线看| 亚洲.国产.中文慕字在线| 国产情人综合久久777777| 911精品国产一区二区在线| 成人影视亚洲图片在线| 日韩不卡一二三区| 中文字幕制服丝袜成人av| 日韩视频中午一区| 色综合久久久久| 国产精品99久久久久久有的能看| 亚洲国产美国国产综合一区二区| 中日韩av电影| 精品久久久久久无| 欧美日韩国产小视频在线观看| zzijzzij亚洲日本少妇熟睡| 精品无人区卡一卡二卡三乱码免费卡| 亚洲男人的天堂网| 中文字幕一区二区三区蜜月| 欧美本精品男人aⅴ天堂| 久久婷婷国产综合国色天香| 欧美在线免费观看亚洲| 成人av影视在线观看| 国产精品一级在线| 九一九一国产精品| 麻豆精品新av中文字幕| 午夜欧美视频在线观看| 亚洲丝袜美腿综合| 欧美韩国一区二区| 国产亚洲一区二区三区| 精品国产123| 久久综合久久综合九色| 日韩你懂的在线播放| 日韩欧美亚洲国产另类| 日韩一级黄色片| 日韩你懂的在线播放| 欧美一区二区三区视频免费播放| 欧美视频自拍偷拍| 欧美日韩一区视频| 欧美人牲a欧美精品| 欧美日韩国产a| 91精品国产综合久久小美女| 欧美日韩成人激情| 91精品婷婷国产综合久久竹菊| 欧美浪妇xxxx高跟鞋交| 制服丝袜av成人在线看| 91精品国产aⅴ一区二区| 日韩区在线观看| 337p粉嫩大胆噜噜噜噜噜91av| www国产精品av| 国产精品乱人伦一区二区| 国产精品伦理一区二区| 亚洲精品大片www| 午夜精品aaa| 日本午夜一区二区| 国产乱码精品1区2区3区| 国产成人精品影院| av日韩在线网站| 欧美午夜精品一区二区三区| 7777精品伊人久久久大香线蕉超级流畅| 欧美精品在欧美一区二区少妇| 欧美大白屁股肥臀xxxxxx| 久久综合色天天久久综合图片| 国产精品素人视频| 亚洲综合视频在线观看| 日韩极品在线观看| 精品一区二区三区在线播放| 东方欧美亚洲色图在线| 欧美四级电影在线观看| 欧美一区二区免费视频| 欧美国产一区二区在线观看| 亚洲摸摸操操av| 久久不见久久见免费视频7| 成人性色生活片| 欧美在线观看你懂的| 精品理论电影在线观看 | 亚洲午夜免费视频| 麻豆91在线播放| 色婷婷久久99综合精品jk白丝| 337p亚洲精品色噜噜| 国产三级精品视频| 国产一区二区成人久久免费影院| 成人av一区二区三区| 欧美男女性生活在线直播观看| 久久久国产精品麻豆| 一区二区三区不卡视频| 国产乱子伦一区二区三区国色天香 | 国产成人精品一区二区三区四区 | 午夜欧美一区二区三区在线播放| 韩国毛片一区二区三区| 色哟哟国产精品免费观看| 欧美v国产在线一区二区三区| 国产精品国产三级国产普通话蜜臀 | 一区二区三区四区中文字幕| 精品亚洲porn| 欧美日韩三级一区| 中文字幕一区二区不卡| 韩国精品久久久| 91精品国产色综合久久ai换脸 | 天堂一区二区在线| 成熟亚洲日本毛茸茸凸凹| 欧美一区二视频| 亚洲精品视频在线看| 国产寡妇亲子伦一区二区| 日韩欧美一级特黄在线播放| 亚洲亚洲精品在线观看| 成人免费的视频| 国产视频在线观看一区二区三区| 日韩av网站在线观看| 91极品视觉盛宴| **性色生活片久久毛片| 高清久久久久久| 中文av一区二区| 成人免费毛片片v| 欧美激情在线一区二区| 国产成人亚洲精品青草天美| 亚洲天堂中文字幕| 国产传媒久久文化传媒| 久久嫩草精品久久久久| 日韩黄色片在线观看| 欧美精品在线观看播放| 婷婷丁香激情综合| 在线电影一区二区三区| 亚洲成人免费看| 欧美日韩一区二区欧美激情| 一区二区三区欧美在线观看| 99久久久精品免费观看国产蜜|