日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

codeigniter中创建自己的类库

發(fā)布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 codeigniter中创建自己的类库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

當我們使用術語"類庫"時,我們一般指的是位于libraries?文件夾中的類,它們在wiki的"類庫參考"這個板塊被討論.在當前這個話題中,我們將討論如何在?application/libraries?文件夾中建立你自己的類庫,并使它們與全框架的資源維持分離.

作為一個額外的功能,當你需要在原始類中簡單地添加一些功能時,CodeIgniter能使你的類庫extend?自原始類.你甚至可以通過在application/libraries文件夾下安放同名類庫文件的方法來完全替換原始類.

總之:

  • 你可以創(chuàng)建全新的類庫.
  • 你可以擴展原始類庫.
  • 你可以替換原始類庫.

以下頁面將深入介紹這三個概念.

注意:?除了數(shù)據(jù)庫類無法被擴展或替換,剩余其他類均可。

建立你的類庫文件

你的類庫文件必須保存在?application/libraries?文件夾,CodeIgniter將在這個文件夾中尋找并初始化它們.

命名約定

  • 文件名首字母大寫. 例如:??Myclass.php
  • 類聲明首字母大寫. 例如:??class Myclass
  • 類的名字和文件名應符合.

類文件

所有的類應有基礎原型(注意,這里我們以?Someclass?這個名字為例):

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');?

class Someclass {

????public function some_function()
????{
????}
}

/* End of file Someclass.php */

使用你自己的類

在所有的Controller?函數(shù)中,你可以用以下的標準方式初始化你的類:

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

當?someclass?是文件名時,不用加上".php"擴展名.這里名字不分大小寫.

一旦你自定義的類加載完畢,你可以通過以下方式調(diào)用類,注意使用?小寫?的名字:

$this->someclass->some_function();? // 對象的實例名永遠都是小寫的

在初始化自定義類時傳遞參數(shù)

當初始化類庫時,你可以通過第二個參數(shù)動態(tài)的傳遞數(shù)組到類的構造函數(shù)中去:

$params = array('type' => 'large', 'color' => 'red');

$this->load->library('Someclass',?$params);

當你使用這個特性時,你必須為類的構造函數(shù)加上參數(shù):

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Someclass {

????public function __construct($params)
????{
????????// Do something with $params
????}
}

?>

你也可以傳遞存于配置文件中的參數(shù).你只需簡單的建立一個與?類文件名相同的config文件,并保存在?application/config/?文件夾中.注意當你通過上文所述的方式動態(tài)傳遞參數(shù)時,config文件中的選項將不起作用.

在你自定義的類庫中初始化CodeIgniter資源

要你自定義的類庫中訪問CodeIgniter的原始資源,你必須使用?get_instance()?函數(shù).這個函數(shù)返回一個CodeIgniter super object.

一般來說在你的控制器函數(shù)中你可以通過?$this?調(diào)用任何可用的CodeIgniter函數(shù):

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

$this, 只直接作用在你自己的控制器,模型和視圖中.當你在自定義類中想使用CodeIgniter原始類時,你可以這樣做:

首先,定義CodeIgniter對象賦給一個變量:

$CI =& get_instance();

一旦定義某個對象為一個變量,你就可以使用那個變量名?取代?$this:

$CI =& get_instance();

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

注意:?你將注意到get_instance()這個函數(shù)通過被引用的方式被傳遞:

$CI =& get_instance();?

這十分重要.?通過引用的方式賦給變量將使用原始的 CodeIgniter 對象,而不是創(chuàng)建一個副本。

用你自己的類替換原始類

簡單的將你自己的類命名為與原始類一樣就能使CodeIgniter使用這個新類.要使用這個特性,文件名與類聲明必須與原始類完全一致。例如,要替換原始的?Email?類庫。你必須創(chuàng)建一個文件application/libraries/Email.php, 并按如下方式聲明類:

class CI_Email {

}

注意大多數(shù)原始類以CI_為前綴.

你可以只用標準載入函數(shù)來載入你自己的類:

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

注意:?這個時候Database無法替換為你自定義的類.

擴展現(xiàn)有類

如果你需要在現(xiàn)有類庫中加入一兩個新的功能,那就完全不必要替換整個類庫文件.你只需簡單地擴展(繼承)現(xiàn)有的類,擴展一個類就像在類中增加一些例外:

  • 擴展的類必須申明由母類擴展而來.
  • 新擴展的類所在的文件必須以?MY_?為前綴(這個選項是可配置的,下面有說明).

例如,要擴展原始類?Email?類你要建立文件?application/libraries/MY_Email.php, 并按如下方式在文件中聲明:

class MY_Email extends CI_Email {

}

注意:如果你需要在類中使用構造函數(shù),你必須在構造函數(shù)中顯式繼承母類構造函數(shù):

class MY_Email extends CI_Email {

????public function __construct()
????{
????????parent::__construct();
????}
}

載入你的子類

要載入擴展子類,你應該使用標準字符名. 請不要使用前綴. 例如,要載入上文說過的email擴展子類,你應該這樣寫:

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

擴展子類一旦被載入,就能像一般的類一樣使用它們. Email類中的所有函數(shù)就能被調(diào)用:

$this->email->some_function();

設定自定義前綴

要設定你自己的子類前綴,請打開?application/config/config.php?文件并找到這一項:

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

注意所有原始CodeIgniter類庫以?CI_?作為前綴,所以請勿以CI_作為你自己的前綴.

轉(zhuǎn)載于:https://my.oschina.net/mickelfeng/blog/130800

總結

以上是生活随笔為你收集整理的codeigniter中创建自己的类库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩一区在线 | 国产v综合v亚洲欧美久久 | 欧美 唯美 清纯 偷拍 | 久久91精品 | 午夜家庭影院 | 一区二区三区中文视频 | 精品一区二区三区三区 | 中文字幕一区二区三区夫目前犯 | 日韩三级黄色 | 国产欧美久久久久久 | 美日韩一级 | 国产精品欧美精品 | 男生操女生在线观看 | 中文字幕第一页在线播放 | 亚洲AV无码成人精品区在线观 | 香蕉亚洲 | 国产精品久久久久久久久借妻 | 欧美精品系列 | 午夜三级福利 | 国内精品久久久久久久久 | 91在线视频免费播放 | 久久99免费视频 | 影音先锋国产在线 | 国产精彩视频 | 亚欧精品在线观看 | 九九福利视频 | av无码久久久久久不卡网站 | 少妇做爰xxxⅹ性视频 | 一级坐爱片| 美女诱惑一区二区 | 成人福利片 | 日韩精品一区二区在线视频 | 奇米四色777| 韩日一区| 久久国产香蕉 | 国产成人三级在线观看 | 涩涩在线观看 | 日韩一区二区精品视频 | 狠狠人妻久久久久久综合麻豆 | 一级特毛片 | 人人爱av| 五月婷婷综合久久 | 深夜福利视频在线 | 天天操夜夜摸 | 色99在线 | 日本黄色大片免费看 | 一卡二卡国产 | 成人免费一区 | 综合视频一区二区 | 日韩大胆人体 | 亚洲福利社| 91精品国产欧美一区二区成人 | 国产性猛交普通话对白 | 欧美精产国品一二三区 | 国产人妖av | 婷婷五月色综合 | 欧美成人视屏 | 亚洲精品国产精品乱码不卡 | 人人爽在线| 国产毛片网 | 91精品在线视频观看 | 久视频在线观看 | 高潮av在线| 国产精品久久午夜夜伦鲁鲁 | 国语对白做受69按摩 | 亚洲五月综合 | 久久av综合网| 蜜桃va | 一区av在线 | 男人的天堂日韩 | 日韩免费一区二区三区 | 久久天天东北熟女毛茸茸 | av电影中文字幕 | 视频一区二区免费 | 青青青在线视频观看 | japanese21ⅹxx日本 | 日本免费一区二区在线 | 天天综合网在线 | 亚洲欧美日韩一区在线观看 | 男人天堂你懂的 | 97超碰在线免费观看 | 国产www在线 | 少女情窦初开的第4集在线观看 | v片在线免费观看 | 福利视频一区二区 | 激情网色| 国产成人一区在线观看 | 国产在线青青草 | 日本黄色免费看 | 国产在线伊人 | 国产av无码国产av毛片 | 免费福利视频网站 | 久久久久亚洲av无码麻豆 | 无码人妻av免费一区二区三区 | 毛片基地在线播放 | 一级做a爰片毛片 | 亚洲精品lv | 国产在线视频自拍 | 天天躁日日躁狠狠躁av麻豆男男 |