版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、ThinkPHP課程目標(biāo):1、關(guān)于mvc和tp的簡介2、快速入門3、學(xué)習(xí)tp中的各個(gè)組件(M、V、C)控制器模型視圖4、實(shí)用項(xiàng)關(guān)于MVC和TP的簡介:一、 什么是框架框架,即framework。其實(shí)就是某種應(yīng)用的半成品,就是一組組件,供你選用完成你自己的系統(tǒng)。 二、 為什么使用框架l 代碼重用l 合理分工l 解決多人協(xié)作開發(fā)問題三、 主流的php框架l Zend Framework l Yii l Symfony l Codelgniter l ThinkPHP l 四、 什么是MVCl MVC是施樂帕克研究中心 (Xerox PARC)在八十年代為編程語言Smalltalk80發(fā)明的一種軟件
2、設(shè)計(jì)模式,至今已被廣泛使用。l MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。 l M:model模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則 l V:view視圖是用戶看到并與之交互的界面 l C:controller控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求 我們?nèi)コ燥?,大堂?jīng)理問我們:客官來點(diǎn)什么?我們:來地溝油!經(jīng)理讓服務(wù)員將我們帶到包房經(jīng)理將我們點(diǎn)的菜發(fā)給廚房廚房開始做菜,好了之后,通知經(jīng)理經(jīng)理讓服務(wù)員將菜端給我們經(jīng)理:控制器后廚:模型 菜:數(shù)據(jù)服務(wù)員:視圖五、 獲取ThinkPHPl l 下載thinkphp3.
3、0l 直接部署到項(xiàng)目中l(wèi) php5.2所有tp版本要求php必須是5以上的,tp3中要求是5.2以上的快速入門一、 了解TP目錄結(jié)構(gòu)將下載的tp3.0壓縮包進(jìn)行解壓,可看到兩個(gè)夾:Examples:代碼示例ThinkPHP:這是我們想用的框架程序我們需要將Thinkphp 文件夾移動(dòng)至我們的項(xiàng)目中,打開ThinkPHP文件夾,可以看到如下內(nèi)容:l ThinkPHP.php框架入口文件l Common框架公共文件目錄l Conf框架配置文件目錄l Lang框架系統(tǒng)語言目錄l Lib系統(tǒng)核心基類庫目錄l Tpl系統(tǒng)模板目錄l Extend框架擴(kuò)展目錄二、 開發(fā)流程l 創(chuàng)建項(xiàng)目,并將ThinkPHP
4、獲得l 創(chuàng)建入口文件l 配置項(xiàng)目l 創(chuàng)建控制器l 創(chuàng)建模型(可以不存在自定義模型)l 創(chuàng)建模板l 運(yùn)行調(diào)試,調(diào)優(yōu)l 部署到生產(chǎn)環(huán)境三、 入口文件l 所有項(xiàng)目都是從入口文件開始的l 定義框架路徑l 定義項(xiàng)目路徑l 定義項(xiàng)目名稱l 載入框架入口文件 四、第一個(gè)ThinkPHP項(xiàng)目1、 創(chuàng)建項(xiàng)目2012,將thinkphp復(fù)制到我們網(wǎng)站的根路徑下,在htdocs下創(chuàng)建index.php文件l require("ThinkPHP/ThinkPHP.php");l THINK_PATHl APP_NAME l APP_PATH 在tp中,由于目錄結(jié)構(gòu)稍微復(fù)雜,所以在第一次訪問入口文件
5、時(shí),會(huì)幫助我們自動(dòng)創(chuàng)建項(xiàng)目結(jié)構(gòu)運(yùn)行路徑:http:/localhost/index.php,可以看到如下界面,說明運(yùn)行成功2、 了解項(xiàng)目目錄結(jié)構(gòu)l Common項(xiàng)目公共文件目錄l Conf項(xiàng)目配置目錄l Lang項(xiàng)目語言包目錄l Lib項(xiàng)目類庫目錄l Tpl項(xiàng)目模板目錄l Runtime項(xiàng)目運(yùn)行時(shí)目錄3、為什么輸入地址之后,可以看到內(nèi)容http:/localhost/index.php由于請(qǐng)求的是這個(gè)url,如果沒有寫任何信息,表示請(qǐng)求Index模塊的index動(dòng)作也就是說:會(huì)自動(dòng)請(qǐng)求IndexAction這個(gè)類下的index方法為什么這樣自動(dòng)請(qǐng)求?l DEFAULT_MODULE:默認(rèn)的默認(rèn)
6、模塊名l DEFAULT_ACTION:默認(rèn)的動(dòng)作名這個(gè)是由于這兩個(gè)配置選項(xiàng)來決定的在配置文件Conf/config.php中添加如下內(nèi)容:這時(shí)會(huì)請(qǐng)求StudentAction這個(gè)類下的add方法。4、我們按照以上的結(jié)構(gòu)開發(fā)項(xiàng)目,合適?不合適將thinkphp框架和入口文件index.php移動(dòng)至我們的項(xiàng)目路徑(2012)文件夾下這樣做需要哪些改動(dòng)?如果您的項(xiàng)目和上圖目錄結(jié)構(gòu)相同,可以使用如下代碼:這樣即可重新運(yùn)行,重新初始化。5、開啟調(diào)試l define(APP_DEBUG,true);l require(ThinkPHP/ThinkPHP.php);APP_DEBUG:表示開啟調(diào)試功能功能
7、:如果開啟,則不產(chǎn)生runtime.php這個(gè)編譯文件如果產(chǎn)生了錯(cuò)誤,可以看到錯(cuò)誤提示6、了解thinkphp的工作流程Thinkphp.php文件主要內(nèi)容如下:定義了項(xiàng)目路徑定義了運(yùn)行時(shí)文件路徑定義是否開啟調(diào)試,默認(rèn)是false如果關(guān)閉調(diào)試模試并且運(yùn)行時(shí)文件存在,就直接包含運(yùn)行時(shí)文件否則定義tp框架的路徑,并且包含common下的運(yùn)行時(shí)文件運(yùn)行時(shí)文件的功能?第一次運(yùn)行時(shí),會(huì)生產(chǎn)生運(yùn)行時(shí)文件,這個(gè)運(yùn)行時(shí)文件會(huì)保存一些系統(tǒng)常用設(shè)置和常用函數(shù),這樣一來,下次請(qǐng)求時(shí),直接包含該運(yùn)行時(shí)文件,可以避免系統(tǒng)開銷運(yùn)行時(shí)文件可能會(huì)造成延遲效果,在開發(fā)時(shí),建議開啟APP_DEBUG7、完善程序l 創(chuàng)建Index
8、控制器的hello方法,顯示相應(yīng)模板l 創(chuàng)建Admin控制器l 創(chuàng)建Admin控制器的index方法,顯示相應(yīng)模板l 創(chuàng)建Admin控制器的hello方法,顯示相應(yīng)模板控制器一、什么是控制器控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。 舉個(gè)例子:http:/項(xiàng)目/index.php/a模塊/b操作該請(qǐng)求是想請(qǐng)求a模塊的b方法,也就是說,會(huì)調(diào)用a模塊的控制器的b方法我們需要在項(xiàng)目目錄的action目錄下,定義一個(gè)控制器文件,這個(gè)文件的命名規(guī)則如下:模塊名(首字母大寫)Action.class.php文件中的類的命名規(guī)則:Class 模塊名(首字母大寫)Action extends Ac
9、tion二、URL的調(diào)度模式Thinkphp默認(rèn)支持的url是這種形式的:http:/項(xiàng)目/index.php/模塊/操作除此之外,還有哪些種url被支持在tp中,可以配置下面這個(gè)選項(xiàng)來使用相應(yīng)的url'URL_MODEL' => 1,URL_MODEL它的取值范圍:共有4種0:普通模式1:pathinfo模式2:Rewrite模式3:兼容模式1普通模式:http:/serverName/appName/index.php?m=module&a=action&id=1m:模塊名a:動(dòng)做名表示請(qǐng)求參數(shù)m指定的模塊,請(qǐng)求這個(gè)模塊下的a參數(shù)指定的方法,同時(shí)向這個(gè)
10、方法傳遞一個(gè)參數(shù)為id,值為1將url_model配置為0'URL_MODEL' => 0/設(shè)置url為普通模式2、 pathInfo模式 (默認(rèn)模認(rèn))http:/serverName/appName/index.php/module/action/id/1/ module:表示模塊action:表示方法id/1 :傳遞一個(gè)參數(shù)id,值為1URL_PATHINFO_DEPR :設(shè)置url分隔符'URL_MODEL' => 1,/設(shè)置url為pathInfo模式'URL_PATHINFO_DEPR' => '-'
11、/設(shè)置url中的分隔符如果這樣設(shè)置,可以這樣訪問:http:/localhost/2012/index.php/Index-hello-id-13、 Rewrite模式我們可以利用rewrite模實(shí)現(xiàn)對(duì)入口文件的隱藏http:/serverName/appName/module/action/id/1/ 'URL_MODEL' => 2/設(shè)置為rewrite模式最終,可以使用下列這種URL進(jìn)行訪問,實(shí)現(xiàn)了對(duì)index.php入口文件的隱藏http:/localhost/2012/Index/hello4、 兼容模式http:/serverName/appName/?s=/
12、module/action/id/1/ module:模塊名action:動(dòng)做名id:參數(shù)名1:參數(shù)值'URL_MODEL' => 3/設(shè)置為兼容模式三、定義控制器位置:Lib/Actionclass UserAction extends Actionpublic function add()$this->display();四、 空操作l 空操作是指系統(tǒng)在找不到指定的操作方法的時(shí)候,會(huì)定位到空操作(_empty)方法來執(zhí)行,利用這個(gè)機(jī)制,我們可以實(shí)現(xiàn)錯(cuò)誤頁面和一些URL的優(yōu)化。l _empty($name)$name:請(qǐng)求的不存在的方法的名稱怎樣解決非法操作?當(dāng)我
13、們請(qǐng)求一個(gè)不存在的方法時(shí),會(huì)自動(dòng)定位到這個(gè)叫_empty的方法中,這個(gè)不存在的方法名會(huì)保存到參數(shù)$name中1) 可以實(shí)現(xiàn)一些錯(cuò)誤頁面的處理功能2) 可以實(shí)現(xiàn)一些url的優(yōu)化:在下面,我們將這個(gè)問題說清楚/我想查詢北京、上海的所有會(huì)員信息?public function search()$city=$_GET'city'echo "select * from User where city='$city'".'<br>'我希望能實(shí)現(xiàn)這樣的url優(yōu)化:http:/localhost/2012/index.php/Us
14、er/shanghaihttp:/localhost/2012/index.php/User/beijingTP認(rèn)為shanghai和beijing是一個(gè)方法名,會(huì)自動(dòng)到UserAction控制器下查shanghai和bejing方法,由于我們沒有定義這兩個(gè)方法,所以會(huì)自動(dòng)執(zhí)行_empty方法,所以這時(shí)$name參數(shù)的值為shanghai或beijing,代碼如下:五、 空模塊l 空模塊的概念是指當(dāng)系統(tǒng)找不到指定的模塊名稱的時(shí)候,系統(tǒng)會(huì)嘗試定位空模塊(EmptyAction),利用這個(gè)機(jī)制我們可以用來定制錯(cuò)誤頁面和進(jìn)行URL的優(yōu)化。l EmptyActionMODULE_NAME當(dāng)請(qǐng)求不到指定
15、的模塊時(shí),會(huì)自動(dòng)去找EmptyAction這個(gè)類,如果這時(shí)url中沒有指定方法名,由于DEFAULT_ACTION=index,所以會(huì)自動(dòng)使用這個(gè)類的index方法,我們可以在這個(gè)類中再定義一個(gè)_empty方法,這樣一來,如果用戶請(qǐng)求了不存在的模塊和不存在方法名時(shí),會(huì)自動(dòng)定位到這里1) 關(guān)于錯(cuò)誤的處理2) 實(shí)現(xiàn)一些url的優(yōu)化我想實(shí)現(xiàn)這樣的url:http:/localhost/index.php/shanghaihttp:/localhost/index.php/bejing六、 項(xiàng)目分組為什么進(jìn)行項(xiàng)目分組?如:前臺(tái)、后臺(tái)、博客、商品我們認(rèn)為:這可以分成四個(gè)項(xiàng)目,在tp可以做一些設(shè)置,將項(xiàng)目
16、進(jìn)行分組l config.php 配置文件l APP_GROUP_LIST:分組列表(有幾個(gè)組,在這里都需要列出,使用逗號(hào)分隔開)l DEFAULT_GROUP:默認(rèn)分組舉個(gè)例子:我現(xiàn)在想將項(xiàng)目分成兩個(gè)組,前臺(tái)和后臺(tái)Home:前臺(tái)Admin:后臺(tái)Conf/config.php代碼如下:該如何設(shè)置分組目錄:必須要做兩個(gè)設(shè)置:1) 對(duì)控制器進(jìn)行分組2) 對(duì)模板進(jìn)行分組在Lib/Action目錄下,創(chuàng)建兩個(gè)文件夾,分別為:HomeAdmin這兩個(gè)名字必須和分組名相同在Tpl/下,創(chuàng)建兩個(gè)文件夾,分別為:HomeAdmin這兩個(gè)名字必須和分組名相同將之前的幾個(gè)控制器文件放入到Admin文件夾下,表示它
17、們都是后臺(tái)項(xiàng)目的控制器,然后,輸入url;http:/localhost/2012/index.php/Admin/Index/indexAdmin:表示分組名Index:表示模塊名Index:表示動(dòng)做名如:該問前臺(tái)中的product模塊中的add操作,可以使用如下url:http:/localhost/2012/index.php/Home/Product/add由于之前設(shè)置了默認(rèn)分組名為Home,所以這個(gè)url也可以寫成http:/localhost/2012/index.php/Product/add最后,在tpl下的各個(gè)項(xiàng)目文件夾創(chuàng)建相應(yīng)的模塊對(duì)應(yīng)的模板,即可!七、 URL大小寫htt
18、p:/localhost/2012/index.php/Admin/Index/hellohttp:/localhost/2012/index.php/Admin/index/hello以上兩種URL都想表示訪問同一個(gè)方法,但是由于tp中的url區(qū)分大小寫,所以第二種方法會(huì)定位到index模塊的hello方法上有時(shí),我們希望url 中可以不區(qū)別大小寫,可以使用如下設(shè)置:l config.php配置文件l URL_CASE_INSENSITIVE=>true/不區(qū)分大小寫'URL_CASE_INSENSITIVE' => false, / 默認(rèn)false 表示URL區(qū)分大小寫 true則表示不區(qū)分大小寫八、 前置后置操作有時(shí)我們希望執(zhí)行方法之前和之后,各有一些額外的操作,這時(shí)可以考慮使用前置和后置操作l _before_l _after_public function _before_index()public function index()public function _after_index()九、 頁
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 虛擬現(xiàn)實(shí)閱讀應(yīng)用-洞察分析
- 網(wǎng)絡(luò)輿情監(jiān)控研究-洞察分析
- 星系團(tuán)物質(zhì)循環(huán)與宇宙環(huán)境-洞察分析
- 信號(hào)控制對(duì)交通碳排放影響-洞察分析
- 脫位復(fù)發(fā)因素-洞察分析
- 云計(jì)算資源調(diào)度策略-洞察分析
- 創(chuàng)建文明校園啟動(dòng)儀式精彩講話稿(12篇)
- 消防宣傳教育效果評(píng)估-洞察分析
- 無人駕駛系統(tǒng)安全-洞察分析
- 《s啟動(dòng)大會(huì)》課件
- 養(yǎng)老院安全巡查記錄制度
- 2024年度三方新能源汽車充電樁運(yùn)營股權(quán)轉(zhuǎn)讓協(xié)議3篇
- 模擬集成電路設(shè)計(jì)知到智慧樹章節(jié)測(cè)試課后答案2024年秋廣東工業(yè)大學(xué)
- 惡性腫瘤中醫(yī)中藥治療
- 2024年國家工作人員學(xué)法用法考試題庫及參考答案
- 山東省濟(jì)南市2023-2024學(xué)年高一上學(xué)期1月期末考試 地理 含答案
- 中國成人心肌炎臨床診斷與治療指南2024解讀
- 期末(試題)-2024-2025學(xué)年人教PEP版英語六年級(jí)上冊(cè)
- 高效脫磷河鋼集團(tuán)李建新
- 口腔常見疾病課件
- 政府與非營利組織會(huì)計(jì)-復(fù)習(xí)題
評(píng)論
0/150
提交評(píng)論