《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第27課 ThinkPHP的配置與架構(gòu)_第1頁
《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第27課 ThinkPHP的配置與架構(gòu)_第2頁
《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第27課 ThinkPHP的配置與架構(gòu)_第3頁
《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第27課 ThinkPHP的配置與架構(gòu)_第4頁
《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第27課 ThinkPHP的配置與架構(gòu)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGE6PAGE6PAGE7PAGE7

課題ThinkPHP的配置與架構(gòu)課時(shí)2課時(shí)(90min)教學(xué)目標(biāo)知識(shí)技能目標(biāo):(1)了解入口文件、模塊和控制器的概念(2)掌握ThinkPHP配置文件的設(shè)置(3)了解ThinkPHP的命名規(guī)范及其項(xiàng)目構(gòu)建流程素質(zhì)目標(biāo):(1)培養(yǎng)學(xué)生責(zé)任意識(shí)和職業(yè)素養(yǎng),使學(xué)生養(yǎng)成良好的習(xí)慣(2)培養(yǎng)學(xué)生的科學(xué)精神、價(jià)值取向、工匠精神、家國情懷教學(xué)重難點(diǎn)教學(xué)重點(diǎn):ThinkPHP的命名規(guī)范及其項(xiàng)目構(gòu)建流程教學(xué)難點(diǎn):入口文件、模塊和控制器教學(xué)方法案例分析法、問答法、討論法、講授法、實(shí)踐法教學(xué)用具電腦、投影儀、多媒體課件、教材教學(xué)設(shè)計(jì)第1節(jié)課:→→→傳授新知(38min)第2節(jié)課:→傳授新知(20min)→小組討論(15min)→課堂小結(jié)(3min)→作業(yè)布置(2min)教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計(jì)意圖第一節(jié)課課前任務(wù)【教師】布置課前任務(wù),和學(xué)生負(fù)責(zé)人取得聯(lián)系,讓其提醒同學(xué)通過文旌課堂APP或其他學(xué)習(xí)軟件,預(yù)習(xí)本節(jié)課要學(xué)習(xí)的知識(shí)【學(xué)生】完成課前任務(wù)通過課前任務(wù),使學(xué)生預(yù)習(xí)本節(jié)課要學(xué)習(xí)的知識(shí),增加學(xué)生的學(xué)習(xí)興趣考勤(2min)【教師】使用文旌課堂APP進(jìn)行簽到【學(xué)生】班干部報(bào)請(qǐng)假人員及原因培養(yǎng)學(xué)生的組織紀(jì)律性,掌握學(xué)生的出勤情況問題導(dǎo)入(5min)【教師】提出以下問題:ThinkPHP的構(gòu)建流程是怎樣的,怎么對(duì)其配置文件進(jìn)行配置呢?通過問題導(dǎo)入,引導(dǎo)學(xué)生主動(dòng)思考,激發(fā)學(xué)生的學(xué)習(xí)興趣傳授新知(38min)【教師】通過學(xué)生的回答引入要講的知識(shí),講解ThinkPHP的配置方法和架構(gòu)14.3ThinkPHP的配置配置文件是ThinkPHP框架程序運(yùn)行的基礎(chǔ)條件,框架的很多功能都需要在配置文件中設(shè)置之后才會(huì)生效。ThinkPHP提供了靈活的全局配置功能,采用最有效率的PHP返回?cái)?shù)組方式定義,支持慣例配置、公共配置、模塊配置等。對(duì)于有些簡(jiǎn)單的應(yīng)用,不需要任何配置文件;而對(duì)于復(fù)雜的要求,還可以增加動(dòng)態(tài)配置文件。系統(tǒng)的配置參數(shù)是通過靜態(tài)變量全局存取的,存取方式簡(jiǎn)單高效。14.3.1配置格式配置文件一般位于“.\Application\Common\Conf”目錄下面,文件名為“config.php”。在ThinkPHP中,默認(rèn)所有配置文件的定義格式均采用返回PHP數(shù)組的方式,其定義格式如下:<?phpreturnarray( 'DEFAULT_MODULE'=>'Index', //默認(rèn)模塊 'URL_MODEL'=>'2', //URL模式 'SESSION_AUTO_START'=>true, //是否開啟session //更多配置參數(shù) //... );?>配置參數(shù)(如上面代碼中的URL_MODEL)不區(qū)分大小寫,但是一般建議保持大寫定義配置參數(shù)的規(guī)范。14.3.2讀取配置無論哪種配置文件,都統(tǒng)一使用系統(tǒng)提供的C()方法來獲取配置參數(shù)。其用法如下:C('參數(shù)名稱')例如,要讀取當(dāng)前的URL模式配置參數(shù),可使用以下語句:$model=C('URL_MODEL');?【教師】通過多媒體展示利14-3,演示通過打印配置參數(shù),驗(yàn)證C()方法的應(yīng)用的操作(1)在網(wǎng)站根目錄下新建文件夾“03”,將解壓后的ThinkPHP文件拷貝到該目錄下,并運(yùn)行應(yīng)用入口文件“index.php”,以自動(dòng)生成應(yīng)用目錄結(jié)構(gòu)。(2)打開“.\Application\Common\Conf”目錄下的配置文件“config.php”,設(shè)置配置參數(shù)如下:returnarray( //'配置項(xiàng)'=>'配置值' 'DB_TYPE'=>'mysql', //數(shù)據(jù)庫類型 'DB_HOST'=>'localhost', //服務(wù)器地址 'DB_NAME'=>'database14', //數(shù)據(jù)庫名 'DB_USER'=>'root', //用戶名 'DB_PWD'=>'123456', //密碼);(3)打開默認(rèn)的Index控制器文件IndexController.class.php,修改默認(rèn)的index()操作方法如下:publicfunctionindex(){dump(C('DB_TYPE')); //獲取配置參數(shù)}dump()是var_dump()的簡(jiǎn)稱,用于顯示關(guān)于一個(gè)或多個(gè)表達(dá)式的結(jié)構(gòu)信息,包括表達(dá)式的類型與值。ThinkPHP中已經(jīng)定義好了該函數(shù),可以直接應(yīng)用。(4)再次運(yùn)行應(yīng)用入口文件“index.php”,結(jié)果如圖所示。?【學(xué)生】觀看、理解、記憶配置參數(shù)名稱中不能含有“.”和特殊字符,允許出現(xiàn)字母、數(shù)字和下畫線。如果要讀取的參數(shù)尚未設(shè)置,則返回NULL。此外,系統(tǒng)支持在讀取的時(shí)候設(shè)置默認(rèn)值,例如://如果DB_HOST參數(shù)尚未設(shè)置,則返回默認(rèn)的字符“l(fā)ocalhost”$model=C('DB_HOST',null,'localhost');【教師】講解ThinkPHP的架構(gòu)14.4ThinkPHP架構(gòu)【教師】安排學(xué)生掃碼觀看視頻“模塊化設(shè)計(jì)”,講解知識(shí)?【學(xué)生】掃碼觀看、理解、記憶14.4.1模塊化設(shè)計(jì)一個(gè)完整的ThinkPHP應(yīng)用基于“模塊/控制器/操作”設(shè)計(jì),并且,如果有需要的話,可以支持多入口文件。ThinkPHP新版采用模塊化的架構(gòu)設(shè)計(jì)思想,對(duì)目錄結(jié)構(gòu)規(guī)范做了調(diào)整,可以支持多模塊應(yīng)用的創(chuàng)建,讓應(yīng)用的擴(kuò)展更加方便。一個(gè)典型的URL訪問規(guī)則是(此處以默認(rèn)的PATHINFO模式為例說明,當(dāng)然也可以支持普通的URL模式):http://serverName/index.php(或者其他應(yīng)用入口文件)/模塊/控制器/操作/[參數(shù)名/參數(shù)值...]為便于理解,下面解釋一下其中的幾個(gè)概念:應(yīng)用:基于同一個(gè)入口文件訪問的項(xiàng)目,稱之為一個(gè)應(yīng)用,如前面默認(rèn)的Application。模塊:一個(gè)應(yīng)用下面可以包含多個(gè)模塊,每個(gè)模塊在應(yīng)用目錄下面都是一個(gè)獨(dú)立的子目錄,一般的網(wǎng)站都有前臺(tái)(Home)和后臺(tái)(Admin)兩個(gè)模塊??刂破鳎好總€(gè)模塊可以包含多個(gè)控制器(一般位于模塊下的Controller文件夾中),一個(gè)控制器通常體現(xiàn)為一個(gè)控制器類。操作:每個(gè)控制器類可以包含多個(gè)操作方法,也可能是綁定的某個(gè)操作類,每個(gè)操作是URL訪問的最小單元。?【教師】通過多媒體展示例14-4,演示在默認(rèn)控制器中新建操作并訪問的操作通過在默認(rèn)控制器中新建操作并訪問,來驗(yàn)證ThinkPHP應(yīng)用是基于“模塊/控制器/操作”進(jìn)行設(shè)計(jì)的思想。(1)在網(wǎng)站根目錄下新建文件夾“04”,將解壓后的ThinkPHP文件拷貝到該目錄下,并運(yùn)行應(yīng)用入口文件“index.php”,以自動(dòng)生成應(yīng)用目錄結(jié)構(gòu)。(2)打開“.\Application\Home\Controller”目錄下的默認(rèn)Index控制器文件“IndexController.class.php”,在其中新建方法demo()……(詳見教材)?【學(xué)生】觀看、理解、記憶1.模塊設(shè)計(jì)?【教師】通過多媒體展示““Home”模塊結(jié)構(gòu)”圖片,并進(jìn)行介紹模塊化設(shè)計(jì)中的模塊是最重要的部分,模塊其實(shí)是一個(gè)包含配置文件、函數(shù)文件和MVC文件(目錄)的集合。例如,前面14.2.5節(jié)自動(dòng)生成的目錄結(jié)構(gòu)中有一個(gè)“Home”模塊,其中的Conf是配置文件目錄,Common是公共函數(shù)文件目錄,模塊控制器目錄默認(rèn)生成的Home模塊模塊函數(shù)公共目錄模塊配置文件目錄模塊模型目錄模塊視圖文件目錄剩下的3個(gè)(Controller模塊控制器目錄默認(rèn)生成的Home模塊模塊函數(shù)公共目錄模塊配置文件目錄模塊模型目錄模塊視圖文件目錄2.多入口文件采用單一入口文件加“模塊/控制器/操作”的方法,很容易泄露網(wǎng)站目錄結(jié)構(gòu)信息,用戶只要看到網(wǎng)頁路徑,就能知道網(wǎng)站結(jié)構(gòu),容易導(dǎo)致網(wǎng)站被黑客攻擊。為此,可以給相同的應(yīng)用及模塊設(shè)置多個(gè)入口,不同的入口文件可以設(shè)置不同的應(yīng)用模式或者綁定模塊。?【教師】通過多媒體展示例14-5,演示在為同一個(gè)應(yīng)用設(shè)置兩個(gè)入口文件的操作多入口文件。本例通過為同一個(gè)應(yīng)用設(shè)置兩個(gè)入口文件,來學(xué)習(xí)如何為一個(gè)應(yīng)用設(shè)置多個(gè)入口。(1)在網(wǎng)站根目錄下新建文件夾“05”,將解壓后的ThinkPHP文件拷貝到該目錄下,并運(yùn)行應(yīng)用入口文件“index.php”,以自動(dòng)生成應(yīng)用目錄結(jié)構(gòu)。(2)在“.\Application”目錄下復(fù)制一個(gè)Home模塊,將其重命名為Admin,并打開Admin目錄下“Controller”文件夾中的“IndexController.class.php”文件,將其首行代碼“namespaceHome\Controller;”修改為“namespaceAdmin\Controller;”,之后修改其index()方法……(詳見教材)?【學(xué)生】觀看、理解、記憶【學(xué)生】聆聽、思考、記錄通過教師的講解和演示,使學(xué)生了解ThinkPHP的配置方法和架構(gòu)第二節(jié)課問題導(dǎo)入(5min)【教師】提出以下問題:什么是URL模式,URL模式的作用是什么?【學(xué)生】思考、舉手回答通過問題導(dǎo)入,引導(dǎo)學(xué)生主動(dòng)思考,激發(fā)學(xué)生的學(xué)習(xí)興趣傳授新知(20min)【教師】通過學(xué)生的回答引入新知,介紹PHP中URL模式、命名空間和ThinkPHP的系統(tǒng)流程14.4.2URL模式?【教師】通過多媒體展示“典型網(wǎng)址”圖片,并進(jìn)行介紹通過前面對(duì)“模塊化設(shè)計(jì)”的學(xué)習(xí),相信讀者已經(jīng)對(duì)URL有了個(gè)簡(jiǎn)單的認(rèn)識(shí),系統(tǒng)一般是從URL參數(shù)中解析當(dāng)前請(qǐng)求的模塊、控制器和操作,如圖14-20中的網(wǎng)址所示。模塊控制器模塊控制器操作由于ThinkPHP的命名規(guī)范是采用駝峰命名法(首字母大寫)的規(guī)則,而URL中的模塊和控制器都是對(duì)應(yīng)的文件名,所以ThinkPHP框架的URL是區(qū)分大小寫(主要是針對(duì)模塊、控制器和操作名,不包括應(yīng)用參數(shù))的,這一點(diǎn)非常關(guān)鍵。在直接訪問入口文件時(shí),由于URL中沒有模塊、控制器和操作,系統(tǒng)會(huì)訪問默認(rèn)模塊(Home)下面的默認(rèn)控制器(Index)的默認(rèn)操作(index),因此下面的訪問是等效的:http://serverName/index.phphttp://serverName/index.php/Home/Index/index這種URL模式是系統(tǒng)默認(rèn)的PATHINFO模式,不同的URL模式獲取模塊和操作的方法不同,ThinkPHP支持的URL模式有四種,分別是普通模式、PATHINFO模式、REWRITE模式和兼容模式,如表所示。可以通過設(shè)置URL_MODEL參數(shù)值,來改變URL模式。?【教師】通過多媒體展示“常用算術(shù)運(yùn)算符”表格,并進(jìn)行介紹URL模式URL模式URL_MODEL值普通模式0PATHINFO模式1REWRITE模式2兼容模式3如果整個(gè)應(yīng)用下面的模塊采用統(tǒng)一的URL模式,就可以在應(yīng)用配置文件中設(shè)置URL模式,如果不同模塊需要設(shè)置不同的URL模式,則可以在不同的模塊配置文件中設(shè)置。1.普通模式普通模式就是用傳統(tǒng)的GET傳參方式來指定當(dāng)前訪問的模塊和操作,例如,以下URL中:http://localhost/?m=home&c=user&a=login&var=valuem參數(shù)表示模塊,c參數(shù)表示控制器,a參數(shù)表示操作。如果使用該模式訪問前面例14-4中的

URL“http://localhost/example/ph14/04/index.php/Home/Index/demo”,將變成這種形式“http://localhost/example/ph14/04/index.php/?m=Home&c=Index&a=demo”,在瀏覽器地址欄中輸入該URL,按“Enter”鍵,結(jié)果如圖所示。?【教師】通過多媒體展示“普通模式的URL”圖片,并進(jìn)行介紹2.PATHINFO模式PATHINFO模式是系統(tǒng)默認(rèn)的URL模式,提供了最好的SEO支持,能夠支持大多數(shù)主機(jī)環(huán)境,其形式如

“http://localhost/example/ph14/04/index.php/Home/Index/demo”。前面用到的URL都屬于PATHINFO模式。此處需要注意一點(diǎn),URL中的index.php不是網(wǎng)站的路徑。3.REWRITE模式REWRITE模式是在PATHINFO模式的基礎(chǔ)上添加了重寫規(guī)則的支持,可以去掉URL地址中的入口文件index.php,但是需要額外配置Web服務(wù)器的重寫規(guī)則。如果是Apache,還需要在入口文件的同級(jí)目錄中添加.htaccess文件,其內(nèi)容如下:<IfModulemod_rewrite.c> Options+FollowSymlinks RewriteEngineOnRewriteCond%{REQUEST_FILENAME}!-dRewriteCond%{REQUEST_FILENAME}!-fRewriteRule^(.*)$index.php/$1[QSA,PT,L]</IfModule>我們使用的ThinkPHP版本,默認(rèn)都提供了該文件,不需要單獨(dú)創(chuàng)建。?【教師】通過多媒體展示例14-6,演示配置Web服務(wù)器的重寫規(guī)則的操作驗(yàn)證REWRITE模式的應(yīng)用。本例通過配置Web服務(wù)器的重寫規(guī)則,來驗(yàn)證REWRITE模式的應(yīng)用。(1)在網(wǎng)站根目錄下新建文件夾“06”,將例14-4中的素材文件“04”目錄下的文件全部拷貝到“06”文件夾中(2)打開服務(wù)器配置文件。服務(wù)器配置文件“httpd.conf”一般位于“Apache24\conf”目錄下,使用記事本打開該文件……(詳見教材)?【學(xué)生】觀看、理解、記憶14.4.3命名空間前面曾多次接觸到命名空間,ThinkPHP新版全面采用命名空間方式定義和加載類庫文件。打開默認(rèn)的控制器文件“IndexControler.class.php”(位于“.\Application\Home\Controller”

目錄下)。其中第一行代碼:namespaceHome\Controller;就是對(duì)命名空間的定義,其中的Home代表前臺(tái)模塊,Controller是當(dāng)前的目錄名。下面的語句:useThink\Controller;?【教師】通過多媒體展示““Controller.class.php”文件”圖片,并進(jìn)行介紹其中的Think是ThinkPHP核心目錄“Library”目錄下的“Think”;Controller是指“Think”目錄下的“Controller.class.php”文件,將其打開,如圖所示。默認(rèn)控制器文件“IndexControler.class.php”中的第3行:classIndexControllerextendsController{其中的Controller就是指圖14-24中的Controller類,也就是說IndexController類是繼承自“Controller.class.php”文件中的Controller類。14.4.4ThinkPHP的系統(tǒng)流程系統(tǒng)流程是指用戶每訪問一次網(wǎng)站,系統(tǒng)要執(zhí)行的基本步驟。使用ThinkPHP框架開發(fā)的應(yīng)用的標(biāo)準(zhǔn)執(zhí)行流程包括以下步驟:(1)用戶的URL請(qǐng)求。(2)調(diào)用入口文件(通常是網(wǎng)站的index.php)。(3)載入框架入口文件(ThinkPHP.php,自動(dòng)調(diào)用框架必需的類)。(4)加載配置文件(應(yīng)用配置文件的優(yōu)先級(jí)要小于模塊下的配置文件)。系統(tǒng)中的配置文件有很多,系統(tǒng)往往會(huì)先加載ThinkPHP核心目錄下的配置文件(位于“ThinkPHP/Conf”目錄下);接下來加載應(yīng)用目錄下的配置文件(位于“.\Application\common\conf”目錄下);最后加載要訪問模塊下的配置文件。例如,要訪問Home模塊,會(huì)加載Ho

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論