ThinkPHP

1.ThinkPHP

  按照MVC模式開發的一個框架,也叫TP框架。php

優勢:css

  1. 快速,穩定的搭建系統程序
  2. 可使開發人員精力集中在業務邏輯上,不須要關心程序的底層架構
  3. 能夠節省大量的代碼,後期的升級、維護、優化十分方便
  4. 有利於團隊的代碼風格統一。

 

2.相關的一些框架

  一、zend frameworkhtml

  zend公司開發的官方的框架,功能很強大,重量級框架。數據庫

  二、Yiiwindows

  國人本身開發的重量級框架,該框架的特色就是代碼的可重用性很是好。數組

  三、CI(code Igniter)瀏覽器

           輕量級的框架,緩存

  四、cakePHP架構

           外國的PHP開發框架框架

  五、ThinkPHP

  這是國人開發的,免費、開源的,簡單的、面向對象的,輕量級的PHP框架。

 

3.ThinkPHP下載

   

  

  

4.ThinkPHP的結構以下:

   

  在ThinkPHP\Library\Think文件夾中,幾個重要的文件

  一、App.class.php             框架核心類文件

  二、Think.class.php           每次請求都要執行的類

  三、Controller.class.php           控制器的父類

  四、Model.class.php                  模型的父類

  五、View.class.php                     試圖的父類

 

5.搭建ThinkPHP的環境

  在站點下新建index.php,代碼以下:

   

  運行後出現歡迎界面,在說明系統自動生成了ThinkPHP的項目目錄,並寫入了初始的控制器和方法。

  自動生成的目錄以下:

   

 

6.建立控制器

  1. 1.         控制器存放在Controller文件夾中
  2. 2.         命名規範:控制器的名稱+Controller.class.php
  3. 3.         類名和文件的名稱要一致
  4. 4.         類名用帕斯卡命名法
  5. 5.         儘可能區分大小寫,windows不區分大小寫,但Linux中區分
  6. 6.         ThinkPHP默認的編碼是UTF-8的。
  7. 7.         若是地址中沒有寫控制器,這默認調用Index控制器,若是沒有寫方法,則默認調用index方法

 

7.命名法:

  一、帕斯卡命名法:首字母大寫   UserName   MyNameIsLiping

  二、駱駝命名法:userName     _user_name

  三、匈牙利命名法:前綴(類別)+名字     radSex    txtUsername   iIength  oStu

 

8.ThinkPHP的路由

   

  一、普通模式

     

  二、pathinfo模式

  http://網址/入口文件(index.php)/分組(平臺)/控制器/方法

  好比:http://localhost/index.php/home/index/index

   

  三、rewrite()重寫模式

  四、兼容模式

  參數s=/分組/控制器/方法。

   

  ThinkPHP中,默認使用pathinfo模式。

 

 

9.定義和調用TP的模板

  全部的模板都要放在view文件夾下。

  規則:一個控制器對應一個文件夾,一個方法對應一個文件

   

 

  TP模板的調用

     

 

 

10.TP系統常量

   

 

 

11.項目後臺的搭建

  一、在Application文件夾下新建一個Admin文件夾,在Admin文件夾中新建Controller和View文件夾。

     

 

  二、在Admin\Controller控制器中新建一個LoginController.class.php頁面,代碼以下:

     

 

  三、在login.html中更改css、js、img的路徑

     

    表單提交地址更改

 

  四、在Admin\Controller文件夾中新建ManagerClass.php文件

   

  五、對應的index頁面中更改以下:

     

 

  六、注意更改index、head、left、right頁面中的路徑

 

12.模板中常量字符串替換

   

 

 

13.ThinkPHP的開發模式 

1.tp框架有兩種使用模式:開發模式(調試模式),一種是生產模式(運行模式)

  define('APP_DEBUG', true);  //調試模式

  define('APP_DEBUG', FALSE);  //運行模式

  

  

    運行模式會把不少核心文件代碼緩存成" common~runtime.php"文件,把原來每次須要加載許多文件的請求如今只要請求一個緩存文件,節省了不少文件的打開,關閉的開銷。

 

14.在頁面的底部顯示日誌信息

在配置文件中,添加以下配置

   

配置完成後,在瀏覽器的右下角會顯示以下標記。

   

 

若是想看源碼的話,在behavior文件夾下的ShowPageTraceBehavior.class.php

   

 

把ThinkPHP的引擎改爲Smarty

 

 

smarty引擎的存放位置

   

 

smarty驅動

   

 

若是想更改Smarty的配置(通常不要改)

   

 

空操做

系統在找不到請求的方法的時候,會定位到__empty()方法處理,利用這個機制,咱們能夠對用戶請求的不存在的全部操做進行統一處理。

   

 

空控制器

當系統請求找不到控制器,會定位到空控制器上EmptyController。

   

 

跨控制器調用

一、直接實例化

   

 

二、A()

A()用來實例化其餘控制器的。

   

 

三、R()

R()和A()基本同樣,惟一不一樣的是R()函數在實例化控制器的時候把操做方法一塊兒傳遞過去,省略了方法的調用

   

 

TP框架的配置文件

慣例配置:ThinkPHP/conf/convention.php

應用配置:Application/Common/conf/config.php

調試配置:Application/Common/conf/debug.php

模塊配置:Application/Home/conf/config.php

 

加載順序

慣例配置->應用配置->調試配置->模塊配置

 

優先級:

模塊配置>調試配置>應用配置>慣例配置

 

C('配置的名稱')       用來獲取配置信息。

 

判斷

<if  condition='表達式'>

 

<elseif  condition='表達式' />

 

<else/>

 

</if>

 

表達式中運算符

PHP運算符

對應的TP中的運算符

 英文全稱

lt

Less  than

gt

Greater  than

==

eq

equal

>=

egt

Equal or greater than

<=

elt

 

 

   

 

循環

   

  

 

 

 

鏈接數據庫

   

 

在配置文件中,作如上的配置,便可鏈接數據庫

建立Model模型

把"Home/Model"文件夾剪切到Application文件夾下,讓Home和Admin共同使用。

第一種實例化模型的方法

   

 

第二種實例化模型的方法

   

 

第三種實例化模型的方法

   

 

在tp3.2之後,M()和D()是同樣的,在3.2以前版本中

M()   相似因而  new Model();

D('goods')  相似於 new GoodsModel():

 

提示:咱們能夠看到goods表的信息,在GoodsModel中沒有寫代碼,全部的業務邏輯都是Model類來實現的。

對錶的操做

增長:M('表名')->add($data);

刪除:M('表名')->delete($id);

更新:M('表名')->save($data);

查詢:M('表名')->select();

 

普通查詢(顯示全部的商品)

一、GoodsController中的代碼以下:

  

   $goods=M('goods')->find();      //獲取一條記錄
          var_dump($goods);

          一、查詢主鍵爲2的記錄
            $list=M('goods')->select(2);
          二、查詢編號是2,3,4,5,6的記錄
            $list=M('goods')->select("2,3,4,5,6");
          三、where條件
            $list=M('goods')->where("goods_name like '%諾基亞%'")->select();
            $list=M('goods')->where("goods_name like '%諾基亞%' and goods_price>=1000")->select();
          四、limit
           $list=M('goods')->limit(5)->select();
             $list=M('goods')->limit(2,5)->select();
          五、where和limit
            $list=M('goods')->where('goods_price>1000')->limit(3)->select();
          六、排序
            $list=M('goods')->order('goods_price desc')->select();
          七、查詢指定字段
            $list=M('goods')->field('goods_name,goods_price')->select();
          八、having
            $list=M('goods')->having('goods_price>2000')->select();
            //分組
            $list=M('goods')->group('goods_brand_id')->field('goods_brand_id ,max(goods_price) m')->having('m>2000')->select();
            var_dump($list);

 

  having和where的區別

  區別一:

  where後面跟的字段必須在數據表中有

  having後面跟的字段必須在數據集中有

  區別二:

  select * from 表  where 條件  group by 分組  having 條件

 

動態查詢

  getby+字段名

   

聚合函數

  

數據添加

一、經過關聯數組的方法添加

  

二、經過AR(active  record)方式來添加

  

數據修改

一、經過關聯數組的方法

   

二、經過AR(active  record)方式

   

 

 

數據刪除

 

 

 

直接執行SQL語句

   

相關文章
相關標籤/搜索