久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

CI框架 簡(jiǎn)介

 牛人的尾巴 2015-08-25
CI工作流程:
        所有的入口都從根目錄下的index.php進(jìn)入,,確定應(yīng)用所在目錄后,加載 codeigniter/CodeIgniter.php 文件,,該文件會(huì)順序加載以下文件執(zhí)行整個(gè)流程,。

     index.php:檢測(cè)文件路徑,加載codeigniter.php文件

    codeigniter.php: 加載 Common/constants....文件,。獲取文件模式,、設(shè)置計(jì)時(shí)器、實(shí)例化類(lèi)(錯(cuò)誤類(lèi),、擴(kuò)展類(lèi),、鉤子類(lèi)、系統(tǒng)擴(kuò)展,、配置類(lèi),、編碼類(lèi)、路由類(lèi),、過(guò)程類(lèi),、輸出類(lèi)、安全類(lèi),、語(yǔ)言類(lèi),、控制器)、加載請(qǐng)求方法,、渲染輸出view,。
    
    CodeIgniter的一個(gè)類(lèi)會(huì)保存為一個(gè)php文件,類(lèi)名與文件名同名,,它的核心應(yīng)用類(lèi)會(huì)在類(lèi)名前加"CI_",。

    system/core/common.php:包含檢測(cè)php版本、文件權(quán)限,、加載核心類(lèi),、獲取配置參數(shù)、加載異常/錯(cuò)誤類(lèi),、獲取http請(qǐng)求狀態(tài)等公共函數(shù)

    application/config/constants.php:設(shè)置文件權(quán)限常量,、應(yīng)用程序宏定義文件

    system/core/Benchmark.php:用來(lái)記錄執(zhí)行時(shí)間

    system/core/Hooks.php:檢測(cè)是否有鉤子對(duì)象調(diào)用

    system/core/Config.php:為管理配置文件提供方法,檢測(cè)application/config/config.php參數(shù)

application/config/config.php:配置全局參數(shù)

    system/core/URI.php:解析url參數(shù)

    system/core/Router.php:檢測(cè)路由配置,,解析 HTTP 請(qǐng)求,,以確定誰(shuí)來(lái)處理

    system/core/Output.php:檢查是否有緩存文件,如果存在則直接輸出內(nèi)容,。

    system/core/Input.php:過(guò)濾 HTTP 請(qǐng)求和任何用戶提交的數(shù)據(jù)

    system/core/Long.php:初始化提示語(yǔ)言變量

   system/core/conctroller.php:控制輸出類(lèi)

引用自:百度空間

記錄錯(cuò)誤日志:

默認(rèn)程序不記錄錯(cuò)誤日志,,如果有需要的話可以設(shè)置:

1、在application/config/config.php中設(shè)置$config['log_threshold'] = 1/2/3/4,,如果為0表示不輸出錯(cuò)誤日志,,具體可查看里面的介紹,;

2、在需要寫(xiě)入錯(cuò)誤的頁(yè)面調(diào)用全局函數(shù)log_message('級(jí)別','消息'),,級(jí)別有三個(gè),,一是error,即php運(yùn)行錯(cuò)誤,,二是debug,,系統(tǒng)調(diào)試,CI本身在很多頁(yè)面也加了自己的系統(tǒng)debug,,三是info,介紹運(yùn)行中的一些消息,,消息內(nèi)容自己寫(xiě),;

3、默認(rèn)情況下錯(cuò)誤日志存放在application/logs/log-[time].php中,,它按日期存放文件,,比如:log-2011-6-26表示存入今天的日志內(nèi)容,一般情況下為了隱藏日志內(nèi)容須將這個(gè)地址挪位,,可以在$config['log_path']中設(shè)置路徑,,按要求最好是完整路徑信息。

設(shè)置自己的全局變量/配置:


有時(shí)需要定義自己的全過(guò)程變量以供在其它地方使用,,如自定義的session等,,在CI中這項(xiàng)工作也很輕松。
1,、在application/config/中創(chuàng)建自己的config文件,,注意存放文件位置。比如建立一個(gè)自己的配置文件mysetting.php,,內(nèi)容,,$config['try'] = 'this is my trying';

2、在需要調(diào)用自定義全局變量的地方使用$this->config->load('settingfile')函數(shù),,比如:
$this->config->load('mysetting');
如果有需要也可以通過(guò)application/config/autoload.php設(shè)置為自動(dòng)加載,。

3、接下來(lái)在同一頁(yè)面中使用$this->config->item('varname')函數(shù),,比如:$this->config->item('try');會(huì)輸出:this is my trying;
上面可以看出,,CI中函數(shù)調(diào)用為:$this->filename的形式,也可以看出CI把整個(gè)系統(tǒng)看成一個(gè)大的類(lèi),,然后通過(guò)加載,、繼承等方式獲取相應(yīng)方法。
更多自定義變量參考:http:///user_guide/libraries/config.html

隱藏index.php與加載外部文件:
來(lái)自:百度空間,,有更改,。
 
     其實(shí)不管是在用CI還是ZF都有同樣一個(gè)問(wèn)題,,就是路徑的問(wèn)題。前期,,我在用ZF做CMS時(shí),,我在.htaccess文件中設(shè)置了如遇到j(luò)s,css,img等資源文件都不重定向。但今天在用CI時(shí),,卻忘記了,,弄了半天都沒(méi)搞好,登陸CI的中國(guó)官方網(wǎng),,終于在論壇高手的幫助下把問(wèn)題觖決了,,在這里把它貼出來(lái),供大家分享,。

   首先,,隱藏url中的index.php文件,這樣訪問(wèn)其它目錄的時(shí)候就不會(huì)有http://www./index.php/xxx的樣式出現(xiàn),,面是直接http://www./xxx形式,,在根目錄.htaccess文件里設(shè)置(作用是隱藏index.php,有時(shí)index.php可能不在根目錄,,則htaccess須移到index.php所在目錄),,如下:

     RewriteEngine on   
     RewriteCond $1 !^(index\.php|images|js|css|robots\.txt)    #這里排除了images、js,、css目錄及index.php,、robots.txt文件
     RewriteRule ^(.*)$ index.php/$1 [L]


    這里JS,CSS,IMG等資源文件夾與SYSTEM文件夾放在同一級(jí)下,獨(dú)立放置的好處是不用受htaccess的限制,,因?yàn)閔taccess文件寫(xiě)明Deny from all,,即拒絕訪問(wèn)。打開(kāi)application/config/config.php改寫(xiě)配置:

     $config['base_url'] = "http://127.0.0.1/";
     $config['index_page'] = "index.php";


    如果,, $config['base_url'] = "http://127.0.0.1";后面沒(méi)加'/',,則在model_rewrite最后一行應(yīng)寫(xiě)RewriteRule ^(.*)$ /index.php/$1 [L],在index.php前加一個(gè)'/',。然后在JS文件夾中建立ajax.js文件,,我在VIEW層中的文件為index.html。這樣我要引入JS時(shí),,可以用CI自帶的BASE_URL來(lái)設(shè)置,,如下:

    在controllers里相關(guān)控制網(wǎng)頁(yè)里添加(在其它load之前):

      $this->load->helper('url');

    在views表現(xiàn)的index.html里:

     <script type="text/javascript" src="http://sumsung753.blog.163.com/blog/<?=base_url().'js/ajax.js'?>"></script>    注:這里url是網(wǎng)站相對(duì)URL(好處是可以更改根目錄后相對(duì)地址不用改變)

   這里js文件夾沒(méi)有重定向,所以可以正常訪問(wèn),,而如果是受限制的頁(yè)面則比較麻煩了,。

好了,CI中引入外部的JS與CSS就這么簡(jiǎn)單。

注別的說(shuō)明:“ RewriteCond $1 !^(index\.php|images|js|css|robots\.txt) ”這里代碼的意思是:任意你想訪問(wèn)的資源都不被重定向時(shí),,都可寫(xiě)在這里,。有時(shí),網(wǎng)站沒(méi)有加載CSS,JS(它的路徑都是正確的)時(shí),,都是被重定向了,,這要注意。

具體可查看CI的中國(guó)官論壇 http:///user_guide/helpers/url_helper.html,,URL輔助函數(shù)一節(jié),,
http:///user_guide/general/urls.html,url設(shè)置,,
http:///forums/thread-4-1-2.html,,Hex關(guān)于隱藏index.php的說(shuō)明,但他在model_rewrite用了index\\.php,,我覺(jué)得用雙反斜杠有誤,。

    (另外:特別謝謝CI中國(guó)官論壇上的Hex 與visvoy )

數(shù)據(jù)間的傳輸:
1、將數(shù)據(jù)從控制器傳入視圖
     由于控制器controllers在ci中扮演交通警察的角色,,其是一個(gè)大類(lèi),而視圖view作為controller類(lèi)中的一個(gè)函數(shù)中的函數(shù),,所以view可以使用controller中的屬性,。所以可以這樣寫(xiě):
Controller類(lèi)Test
class Test extends CI_Controller {
    public static $test2=''; //定義一個(gè)屬性
    public function __construct(){
        parent::__construct();
        self::$test2 = $this->load->view('new','',true); //給$test2這個(gè)屬性賦值
    }
    public function index()    {   
        $this->load->helper('url');           
        $this->load->view('anchor');   
    }
}
View.php
<?php
echo Test::$test2; //直接使用類(lèi)中的值
?>
這種直接使用controllers類(lèi)中的值的方法雖然可行,卻不是ci所提倡的,。一般來(lái)說(shuō)在controller中使用$this->load->view()的時(shí)候可以通過(guò)參數(shù)傳值給view視圖:
function index()
{
    $data['css'] = $this->css;
    $data['base'] = $this->base;
    $data['mytitle'] = 'Welcome to this site';
    $data['mytext'] = "Hello, $name, now we're getting dynamic!";
    $this->load->view('testview', $data); //$data通過(guò)參數(shù)傳遞到view
}
這里,,把需要傳遞的數(shù)值加入至$data數(shù)組,ci在核心類(lèi)中給自動(dòng)使用extract()函數(shù)把數(shù)組“解壓”出來(lái),,成為一個(gè)個(gè)變量,。所以在view中可以直接這樣使用變量:
echo $css;

2、模型與視圖的交互
在ci中模型總是用以處理數(shù)據(jù),,模型中數(shù)據(jù)處理也是通過(guò)controller中轉(zhuǎn)到view,,所以最好不要試圖模型直接與視圖聯(lián)系。手冊(cè)中有這樣一個(gè)例子:
class Blog_controller extends CI_Controller {
    function blog()    {
        $this->load->model('Blog'); //載入模型
        $data['query'] = $this->Blog->get_last_ten_entries(); //使用模型中的方法,,將返回值存入$data數(shù)組
        $this->load->view('blog', $data); //像上例一樣,,通過(guò)參數(shù)傳給視圖view
    }
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多