TP框架基礎(一)

【使用框架】

 官網:thinkphp.cn.  目前建議使用thinkPHP3.2版本

一、結構目錄
》Thinkphp文件夾,是thinkPHP的核心文件,裏面的內容是不允許我們修改的
》Public是公有的文件夾,裏面可以寫自己的東西
》Application 我們建立項目的文件夾(Public和Application裏面原有自帶的文件可以刪除,相當於兩個空的文件夾)
》tp文件夾中的index.php 是所有程序的入口文件

》conf->convention.php 配置文件 包含了所有的配置

》thinkphp->conf 文件夾->配置文件,幾乎包括關於thinkPHP的所有配置.但是在這個文件夾中不可以修改。如果想要對thinkPHP進行配置的話,需要先在配置裏查一下,配置變量的名字後,然後複製到自己項目的配置文件中,更改變量
》library文件夾->包含了幾乎所有的核心類,在library文件夾下的think文件夾裏

》 Mode文件夾->模型

》Tpl文件夾->模板

【框架項目部署】

部署一個Shop項目,使用tp框架

步驟:

創建入口文件:

1.ThinkPHP目錄下創建一個入口文件index.php,如果有直接使用就可以

 

View Code

 

》define 定義常量

  define('APP_DEBUG',True)   

  true:開啓調試模式,建議開發階段開啓,這樣在開發時出錯才能報出很詳細的錯誤
  false:生產模式,出現錯誤不會報出詳細的錯誤信息,不利於開發

  

2.訪問入口文件的同時系統會自動把對應的應用目錄文件Shop創建出來

(訪問入口文件的時候,實際上訪問的是默認模塊裏的默認控制器裏的默認方法 )

3.打開Home文件夾

 

MVC模式】 

MModel 數據模型層,負責數據操作 

VView 視圖層,負責顯示視圖(就是模板,靜態頁面)

CController 控制器,實現業務邏輯


MVC模式裏,我們訪問的不是具體的頁面,而是訪問的控制器,控制器會找到對應的模板進行顯示

【控制器訪問及路由解析】 

通過url地址get參數找到指定的控制器,並進行對應方法調用請求

http://網址/index.php?m=模塊名稱&c=控制器&a=方法

以上url地址信息代碼不夠優雅、不安全。 

tp框架url地址可以由以下四種

1.http://網址/index.php?m=XX&c=XX&a=XX   基本get模式 (a代表action操作 )

2.http://網址/index.php/模塊/控制器/操作方法  路徑模式pathinfo

3.http://網址/模塊/控制器/操作方法           rewrite重寫模式

4.http://網址/index.php?s=/模塊/控制器/方法    兼容模式 

具體url地址模式設置(配置文件ThinkPHP/Conf/convertion.php)

URL_MODEL  =  0/1/2/3  分別代表四種url地址模式

 

config.php是我們當前自己項目的配置文件,我們可以通過修改該文件達到配置變量的目錄

這個文件在系統運行過程中會覆蓋convertion.php的配置變量

include “convertion.php”;

include “config.php”;  後引入的文件要把先引入的文件配置變量給覆蓋掉

 

我們系統有兼容4url地址模式的使用

系統有的時候會自動創建url地址,它會根據當前模式進行url地址創建使用

快捷函數 U();  創建url地址

 

thinkphp->conf->convention.php->'URL_MODEL'表示在自動生成路徑的時候是按照這種模式生成的,並不是表示訪問一定要按照這個方式訪問 

通過url地址模式我們學習到了以下內容:

1.我們學習到了配置變量(核心配置變量conversion.php、當前應用配置變量config.php

2.快捷函數U(“模塊/控制器/方法”)  根據參數和url模式 創建對應的url地址

3.把框架的模式調整爲開發調試模式

 

默認的IndexController.class.php控制器中,控制器就是一個類,繼承Controller父類,裏面的index方法在控制器裏稱爲操作 

》訪問入口文件的時候,實際上訪問的是 默認控制器裏的默認方法 ( thinkPHP文件夾中的conf->convention.php )

》'URL_MODEL' = 1 代表的是默認自動生成路徑的時候,按照1的路徑生成的.在自己的項目中,如果要創建URL的話,是按照1的路徑創建

【開發、生產模式】

開發調試模式:系統需要加載大概24個文件  index.php  define(“APP_DEBUG”,true);

生產模式:系統只需要加載很少的大概7個文件  在入口文件

index.php中定義: define(“APP_DEBUG”,false);

節省了許多文件的開發、關閉的系統開銷,節省資源

如果把入口文件index.php中的開發模式改成生產模式,再訪問一遍入口文件index.php 在Shop(項目文件夾)裏的Runtime文件夾裏會緩存出一個common-runtime.php文件夾,集成了很多文件。如果是生產模式,直接使用這個文件就可以的

要在頁面顯示trace信息,需要在自己的配置文件中:

》開發的時候建議開啓(在自己的項目配置中)
'SHOW_PAGE_TRACE'=>TRUE, 寫在配置裏,右下角出現的標誌,點擊會顯示一些執行的詳細信息

》生產模式狀態下,會緩存common-runtime.php文件,在自己創建的Shop項目文件夾下->Runtime->common-runtime.php文件(好多文件集成在這個文件裏)

【控制器和對應方法創建】

控制器是MVC模式中的核心,tp默認有一個Index控制器:

Index控制器裏面有一個操作方法:Index

 

 

我們在訪問http://localhost:8080/Thinkphp/index.php入口文件的時候,會默認訪問Index控制器下面的Index方法

 

如果要自己創建一個控制器Login

1.在\Shop\Home\Controller文件夾下新建一個控制器文件LoginController.class.php

注意:文件命名規則,按照駝峯法命名(創建控制器,控制器的首字母大寫 )



2.打開該文件,在裏面造控制器Login

 

3.如果要自定義操作方法,在控制器Login類裏面加一個函數Login()

 

這樣我們就完成了控制器和操作方法的建立,如果要訪問我們剛纔的Login控制器下的Login方法:

4.控制器中如果要調用視圖層中的模板:

這樣再次訪問,會發現報錯:

原因:模板文件沒有創建,這時候我們就要去創建模板文件

同一個控制器中可以有多個操作方法,而且每個方法都可以單獨訪問

 

 

》所有控制器的父類Controller 位置:TinkPHP->Library->Think->Controller.class.php 

命名空間 (根據目錄建命名空間)

1)tp框架主要有兩個根命名空間

  1.ThinkPHP\Library (在其他地方使用的根命名空間)
  2.Home  (如果是在模塊裏使用的根命名空間)

2)命名空間裏用的是反斜槓\

3)例:namespace Home\Controller 代表控制器的命名空間

   use Think\Controller (use ThinkPHP\Library\Think\Controller) 代表引用了Think命名空間下的Controller

》同一個控制器下可以有多個方法,且每個方法都可以單獨訪問 

》控制器對應一個模板文件夾,控制器裏的每一個方法,對應模板文件夾裏的每一個頁面。view裏的文件夾必須和控制器的名字是一致的,大小寫一致、 

》命名空間(相當於一個虛擬的文件夾)

》MVC裏有一句話叫做:約定勝於配置

》顯示模板的方法在controller父類裏面,裏面有display方法,調用display方法後,給出模板路徑$this->display(); 

》約定:模板的默認名是固定的,根據控制器名在view裏建一個模板文件夾,再在文件夾裏建一個和操作方法名一致的文件(.html)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章