thinkPHP框架使用方法


title: thinkPHP框架使用方法
date: 2018-01-05 20:30:44
tags:


1. thinkPHP思想

thinkPHP基于MVC思想咖熟,MVC是一種設計模式,他強制的使用應用程序的輸入徒仓、處理和輸出分開。MVC應用程序被分為三個核心部分:模型(model)誊垢、視圖(view)掉弛、控制器(control),他們各自處理自己的任務喂走。
例如:
<div align=center>

[圖片上傳失敗...(image-7538ba-1515156835754)]

</div>

2. 單入口創(chuàng)建項目

<?php
    //單入口 ||  主入口 :路由分配
    
    //開啟調試模式:部分做緩存
    define("APP_DEBUG",true);
    //定義項目名稱
    define("APP_NAME","Index");
    //定義項目路徑
    define("APP_PATH","Index/");
    
    //引入核心文件
    require "ThinkPHP/ThinkPHP.php";
?>

執(zhí)行上述代碼時殃饿,系統(tǒng)自動創(chuàng)建一個文件夾,里面包含的內容與系統(tǒng)封裝的thinkPHP一樣芋肠,而這里面的文件就是我們要寫的代碼乎芳。

[圖片上傳失敗...(image-d688cc-1515156835754)]

3. 庫目錄結構(thinkphp)

? Lib/Think: 為Thinkphp框架核心目錄

? Lib/ORG : 為Thinkphp框架自帶擴展目錄

4. 項目目錄結構(home)

  • Lib:放置控制層類和模型層類
    - Action:相當于controler
    - Model: model層
  • Tpl:放置著模板(皮膚)文件,相當于view
  • Conf:系統(tǒng)項目配置目錄
  • Common:項目中公共用到的資源帖池,如js,css奈惑,圖片等
  • Runtime:系統(tǒng)運行時臨時目錄(若運行中產(chǎn)生緩存現(xiàn)象,可以將該目錄中內容進行刪除)
    - Cache:模板頁面緩存
    - Data:數(shù)據(jù)字段緩存
    - Logs:系統(tǒng)運行日志
    - Temp:臨時文件緩存
    - app:系統(tǒng)配置文件編譯緩存

5. thinkPHP的訪問規(guī)則

  • http:localhost/thinkphp/index.php/index/index
  • Thinkphp規(guī)定:所有的主入口文件默認訪問index控制器睡汹,且所有的控制器默認是去找index方法(動作)
  • 控制器類名必須是于文件名相同(除去.class.php)肴甸,首字母必須大寫,后面加上Action囚巴,且要繼承Action
// 本類由系統(tǒng)自動生成原在,僅供測試用途
class IndexAction extends Action {
    public function index(){
            $name = "DR";
            //將變量輸出到模板
            //1、(不常用)
            $this->name = "DR";
            //2彤叉、(常用)
            $this->assign("height","183cm");
            $this->assign("showTime",$showTime);
            //加載index模板  默認加載
//          $this->display();   
            //加載到指定的模板  不加后綴
            $this->display("test");
    }
  • 方法名通常是public(默認)庶柿,否則thinkphp無法正常解析

6. 控制器與模板之間的關系

    1. Thinkphp中模板和控制器之間的訪問原則
    • 加載模板(跨模板): $this->display(Action:模板名稱)
    • 加載模板(本模板):$this->display([模板名稱])
            //加載到指定的模板  不加后綴
            $this->display("test");
    1. 控制器與模板之間的變量傳遞
    • $this->assign('變量名','變量值')
    • 在模板中采用{$變量名}的形式輸出變量值
            <ul>
            <!-- offset="1"從什么位置輸出  length="2"輸出幾條 empty="暫時沒有數(shù)據(jù)" 當數(shù)據(jù)沒有的時候顯示 -->
            <volist name="arr" id="val" offset="1" length="1" empty="暫時沒有數(shù)據(jù)" >
                <li>姓名是:{$val.name},年齡是:{$val["age"]},身高是:{$val.height}</li>
            </volist>
            
            <foreach name="arr" item="val">
                <p>姓名是:{$val.name},年齡是:{$val.age}秽浇,身高是:{$val["name"]}</p>
            </foreach>
            
            <!--
                gt : 大于
                egt: 大于等于
                lt: 小于
                elt: 小于等于
                eq: 等于
                neq: 不等于
                heq: ===
                nheq: !==
            -->
            <if condition="$num gt 5">
                num的值大于5
                <elseif condition="$num lt 5" />
                    num的值小于5
                <else />
                    num的值等于5
            </if>
        </ul>
        <!--對str進行加密-->
        {$str|md5};
        <hr />
        當前時間:{$nowTime|date="Y-m-d H:i:s",###}
        <hr />
        處理之后的時間:{$showTime}
        
        
        <for start="1" end="10">
            {$i} <br />
        </for>
        
        
        <switch name="randNum">
            <case value="1" break="1">{$randNum}的值等于1</case>
            <case value="2" break="1">{$randNum}的值等于2</case>
            <default />{$randNum}的值不是1浮庐,2
        </switch>
        
        <hr />
        <eq name="randNum" value="2">{$randNum}的值等于2</eq>
        
        <hr />
        {$randNum > 2 ? "大于2" : "小于2"}
        
        <hr />
        <!--in  ||  notin-->
        <in name="randNum" value="2,3,4,5">{$randNum}在值里面</in>
        <hr />
        <!--between-->
        <between name="randNum" value="2,5">
            {$randNum}在值2~5里面
            <else />
            {$randNum}的值等于1
        </between>
        
        <!--引入外部文件  后面不加后綴-->
        <include file="commonView" />
        <!--引入外部文件的時候,如果是外部文件夾里面的文件
            會生成類柬焕,要先引入里面的類
        -->
        <include file="Public:header" />
        <!--也可以用相對路徑-->
        <include file="../Public/header" />
    1. 控制器調用模板的方式
    • URL: 代表當前操作所在木塊地址(同控制方法跳轉)
    • APP:代表當前項目的入口文件的地址(跨控制器方法跳轉)
    • ROOT:代表網(wǎng)站根目錄地址(跨前审残、后臺控制器方法跳轉,范圍最廣)

7. 配置文件

  • 屬性配置
    1. 配置文件在config.php文件里
      配置的屬性通過大C方法來實例化
<?php
    class ProductAction extends Action{
        function getUrlModel(){
            //實例化配置項  C()方法調用Conf里面的方法
//          echo C("URL_MODEL");
            //實例化自定義
//          echo C("name");
            echo C("height");
        }
    }
?>
 2. 如果有多個配置文件的話击喂,可以通過“LOAD_EXT_CONFIG”=>"user"來進行配置

"LOAD_EXT_CONFIG" => "user", 在config.php里面配置

<?php
return array(
    //'配置項'=>'配置值'
//  "URL_MODEL" => 0
    "name" => "D2222",
    "age" => "19",
    //加入其他配置項文件
    "LOAD_EXT_CONFIG" => "user",
);
?>

8. 連接數(shù)據(jù)庫

    //數(shù)據(jù)庫配置信息
    'DB_TYPE'   => 'mysql', // 數(shù)據(jù)庫類型
    'DB_HOST'   => 'localhost', // 服務器地址
    'DB_NAME'   => 'thinkphp', // 數(shù)據(jù)庫名
    'DB_USER'   => 'root', // 用戶名
    'DB_PWD'    => '', // 密碼
    'DB_PORT'   => 3306, // 端口
    'DB_PREFIX' => '', // 數(shù)據(jù)庫表前綴 
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末维苔,一起剝皮案震驚了整個濱河市碰辅,隨后出現(xiàn)的幾起案子肋拔,更是在濱河造成了極大的恐慌待牵,老刑警劉巖娇斑,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颠悬,死亡現(xiàn)場離奇詭異,居然都是意外死亡眼俊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來褐澎,“玉大人,你說我怎么就攤上這事伐蒋」と” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵先鱼,是天一觀的道長俭正。 經(jīng)常有香客問我,道長焙畔,這世上最難降的妖魔是什么掸读? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮宏多,結果婚禮上儿惫,老公的妹妹穿的比我還像新娘。我一直安慰自己伸但,他們只是感情好肾请,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著更胖,像睡著了一般筐喳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上函喉,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天避归,我揣著相機與錄音,去河邊找鬼管呵。 笑死梳毙,一個胖子當著我的面吹牛,可吹牛的內容都是我干的捐下。 我是一名探鬼主播账锹,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坷襟!你這毒婦竟也來了奸柬?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤婴程,失蹤者是張志新(化名)和其女友劉穎廓奕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡桌粉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年蒸绩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铃肯。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡患亿,死狀恐怖,靈堂內的尸體忽然破棺而出押逼,到底是詐尸還是另有隱情步藕,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布挑格,位于F島的核電站漱抓,受9級特大地震影響,放射性物質發(fā)生泄漏恕齐。R本人自食惡果不足惜乞娄,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望显歧。 院中可真熱鬧仪或,春花似錦、人聲如沸士骤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拷肌。三九已至到旦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巨缘,已是汗流浹背添忘。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留若锁,地道東北人搁骑。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像又固,于是被迫代替她去往敵國和親仲器。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理仰冠,服務發(fā)現(xiàn)乏冀,斷路器,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,806評論 6 342
  • 1. Java基礎部分 基礎部分的順序:基本語法洋只,類相關的語法辆沦,內部類的語法昼捍,繼承相關的語法,異常的語法众辨,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • 做這個項目時端三,服務端最開始是使用原生php寫的舷礼,在查詢數(shù)據(jù)庫時鹃彻,沒有做任何緩存,后來做到商城妻献,采用thinkphp...
    一只好奇的茂閱讀 6,105評論 1 48
  • 距離我十八歲生日蛛株,還有142天。 從可追溯的記錄來看,在16年國慶第一天我就開始倒計時了.在十八歲之前想成功減肥,...
    YemL閱讀 228評論 0 0