日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TP框架基础(一)

發(fā)布時間:2024/4/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TP框架基础(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【使用框架】

?官網(wǎng):thinkphp.cn. ?目前建議使用thinkPHP3.2版本

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

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

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

》?Mode文件夾->模型

》Tpl文件夾->模板

【框架項目部署】

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

步驟:

創(chuàng)建入口文件:

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

?

View Code

?

》define 定義常量

? define('APP_DEBUG',True) ??

? true:開啟調(diào)試模式,建議開發(fā)階段開啟,這樣在開發(fā)時出錯才能報出很詳細的錯誤
? false:生產(chǎn)模式,出現(xiàn)錯誤不會報出詳細的錯誤信息,不利于開發(fā)

??

2.訪問入口文件的同時系統(tǒng)會自動把對應的應用目錄文件Shop創(chuàng)建出來

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

3.打開Home文件夾

?

MVC模式】?

MModel 數(shù)據(jù)模型層,負責數(shù)據(jù)操作?

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

CController 控制器,實現(xiàn)業(yè)務(wù)邏輯


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

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

通過url地址get參數(shù)找到指定的控制器,并進行對應方法調(diào)用請求

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

以上url地址信息代碼不夠優(yōu)雅、不安全。?

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

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

2.http://網(wǎng)址/index.php/模塊/控制器/操作方法??路徑模式pathinfo

3.http://網(wǎng)址/模塊/控制器/操作方法???????????rewrite重寫模式

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

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

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

?

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

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

include “convertion.php”;

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

?

我們系統(tǒng)有兼容4url地址模式的使用

系統(tǒng)有的時候會自動創(chuàng)建url地址,它會根據(jù)當前模式進行url地址創(chuàng)建使用

快捷函數(shù) U(); ?創(chuàng)建url地址

?

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

通過url地址模式我們學習到了以下內(nèi)容:

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

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

3.把框架的模式調(diào)整為開發(fā)調(diào)試模式

?

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

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

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

【開發(fā)、生產(chǎn)模式】

開發(fā)調(diào)試模式:系統(tǒng)需要加載大概24個文件 ?index.php ?define(“APP_DEBUG”,true);

生產(chǎn)模式:系統(tǒng)只需要加載很少的大概7個文件 ?在入口文件

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

節(jié)省了許多文件的開發(fā)、關(guān)閉的系統(tǒng)開銷,節(jié)省資源

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

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

》開發(fā)的時候建議開啟(在自己的項目配置中)
'SHOW_PAGE_TRACE'=>TRUE, 寫在配置里,右下角出現(xiàn)的標志,點擊會顯示一些執(zhí)行的詳細信息

》生產(chǎn)模式狀態(tài)下,會緩存common-runtime.php文件,在自己創(chuàng)建的Shop項目文件夾下->Runtime->common-runtime.php文件(好多文件集成在這個文件里)

【控制器和對應方法創(chuàng)建】

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

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

?

?

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

?

如果要自己創(chuàng)建一個控制器Login

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

注意:文件命名規(guī)則,按照駝峰法命名(創(chuàng)建控制器,控制器的首字母大寫?)



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

?

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

?

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

4.控制器中如果要調(diào)用視圖層中的模板:

這樣再次訪問,會發(fā)現(xiàn)報錯:

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

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

?

?

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

命名空間?(根據(jù)目錄建命名空間)

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方法,調(diào)用display方法后,給出模板路徑$this->display();?

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


轉(zhuǎn)載于:https://blog.51cto.com/zwl51168/1859699

總結(jié)

以上是生活随笔為你收集整理的TP框架基础(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。