【使用框架】
官網: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模式】
M:Model 數據模型層,負責數據操作
V:View 視圖層,負責顯示視圖(就是模板,靜態頁面)
C:Controller 控制器,實現業務邏輯
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”; 後引入的文件要把先引入的文件配置變量給覆蓋掉
我們系統有兼容4中url地址模式的使用
系統有的時候會自動創建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)