一步一步循序漸進學習TP.doc_第1頁
一步一步循序漸進學習TP.doc_第2頁
一步一步循序漸進學習TP.doc_第3頁
一步一步循序漸進學習TP.doc_第4頁
一步一步循序漸進學習TP.doc_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

一步一步循序漸進學習TP前言TP的手冊相當多,其實不必再出這樣的貼子,論技術,我也是菜鳥一個,同時也在學習當中??吹秸搲隙嗔瞬簧傩屡笥眩簧僭诒г故謨钥床欢?,那我就姑且拋磚引玉,嘗試與新朋友們更簡單地、手把手地進入TP的應用中去。講解過程中有錯的地方,大家?guī)兔χ刚?。這個系列,初步定下的目標為,從零開始,以TP示例中心中的Form為例進行講解,以實踐為主,理論為輔,將TP的最基本內(nèi)容逛一遍,至少讓我們一起學會如何進行最簡單的對數(shù)據(jù)進行查、增、改、刪操作并輸出到模板。由于我們說的是循序漸進,所以我用步驟式來說明,只要一步一步跟著做,相信聰明的你在使用過程中就會明白TP的應用了。注意:以下的步驟,僅僅是TP靈活的布署方式其中一種,實際開發(fā)中可以根據(jù)自己的情況去另行設定。至于為什么那樣做,我們會在最后再作總結,我覺得先實操然后再進行說明比較容易明白。以下不再重復解釋。=一快速開始一個項目名詞解釋:項目:你要開發(fā)的系統(tǒng),稱之為項目。入口文件:你可以理解為這個項目的唯一一道門,以后所有的操作都會通過這道門去執(zhí)行處理。不必理會什么意思,你甚至可以先把它看成是index.php就是入口文件TP: ThinkPHP框架的簡稱1下載TP1.5正式版2 擬好你的項目名稱,我們這里以 Myapp 為項目名稱3 在www根目錄下,將TP框架所有文件全部復制過去,文件夾名稱是ThinkPHP4 與ThinkPHP同級新建一個文件夾,起名為 Myapp,也就是項目名稱5 在www根目錄下,創(chuàng)建一個PHP文件,起名index.php,這就是入口文件入口文件index.php代碼:1. run();14. ?復制代碼就這么簡單幾行,然后打開瀏覽器,輸入/一個TP項目就這樣構建出來了。你會看到1. _ Hello,歡迎使用ThinkPHP!復制代碼這行字。并自動為你創(chuàng)建好項目的目錄。接下來,我們這個項目添磚加瓦。=二 簡單認識項目里的各個文件夾名詞解釋:Action:模塊控制器類,你暫時可以理解為一個Action文件代表著一個應用模塊,Action文件中的每一個方法(function)代表著一個操作,操作分為有輸出到模板的操作和只具執(zhí)行不需要輸出的操作。對于有輸出的操作,則代表了你的項目中一個展示給用戶應用的web頁面。(注意:這不是正統(tǒng)的術語解釋)Model:數(shù)據(jù)表相對應的Model類,可以理解為一個Model文件對應著你項目數(shù)據(jù)庫的其中一個表。命名關系請參看這里:/Article/10在添磚加瓦之前,我們有必要認識一下各個文件夾的用途。打開Myapp文件夾,里面TP已讓你很省心地構建了最基本的目錄。其中:Cache文件夾:項目自動生成的模版緩存會出現(xiàn)在這里Common文件夾:你的項目中要用到的自己寫的函數(shù),可以在這個文件夾下創(chuàng)建一個名為common.php文件,在這個文件中書寫函數(shù),這些函數(shù)可以用在你項目的各個類,同時也可以在模板變量中使用,TP框架會自動加載。Conf文件夾:項目的運行配置文件config.php將放在這個文件夾里,(還有路由配置,調(diào)試配置等,請先忽略)Data文件夾:TP會把項目的數(shù)據(jù)庫表字段生成到這里,另外。那些先不必理會。Lang文件夾:項目的語言設置目錄,先不必理會。Lib文件夾:應用類庫目錄,在這文件夾內(nèi)還有兩個文件夾:Action和Model,Action目錄放置命名為xxxAction.class.php的控制器文件,Model目錄放置對應數(shù)據(jù)庫表的命名為xxxModel.class.php的類文件。Logs文件夾:項目中自動產(chǎn)生的日志文件會存放在這里。暫不必理會。Temp文件夾:數(shù)據(jù)緩存目錄,存放項目中自動生成的項目運行緩存文件等,以及使用文件方式時的緩存文件等Tpl文件夾:模板文件目錄,內(nèi)有一個default文件夾,也就是默認的風格。項目生成的目錄結構就先簡單介紹到這里,下一步我們要簡單地對項目進行最基本的配置。三 創(chuàng)建數(shù)據(jù)表,并對項目進行配置,以便連接到數(shù)據(jù)庫。1 我們這里使用的是Mysql數(shù)據(jù)庫,利用PhpMyadmin新建一個數(shù)據(jù)庫,名稱為myapp。使用示例中心中的sql如下:1. CREATE TABLE think_form (2. id smallint(4) unsigned NOT NULL auto_increment,3. title varchar(255) NOT NULL,4. content varchar(255) NOT NULL,5. create_time int(11) unsigned NOT NULL,6. update_time int(11) unsigned NOT NULL,7. status tinyint(1) unsigned NOT NULL,8. email varchar(50) NOT NULL,9. PRIMARY KEY(id)10. ) ENGINE=MyISAMDEFAULT CHARSET=utf8 ;復制代碼2 在Conf文件夾內(nèi),建立一個config.php文件。這個文件,就是Myapp項目的配置文件。系統(tǒng)會自動加載config.php文件中的配置是以數(shù)組返回方式進行定義,會覆蓋TP框架中的common目錄下convention.php的默認配置。沒有設置的配置,就以默認為準。配置設置可以利用C函數(shù)動態(tài)改變,暫且不必理會。而我們連接到數(shù)據(jù)庫的設置也是在這個文件中書寫。config.php代碼如下:1. mysql, / 使用的數(shù)據(jù)庫是mysql5. DB_HOST=localhost,6. DB_NAME=myapp,/ 數(shù)據(jù)庫名7. DB_USER=root,8. DB_PWD=123456,/ 填寫你連接數(shù)據(jù)庫的密碼9. DB_PORT=3306,10. DB_PREFIX=think_, / 數(shù)據(jù)表表名的前綴 請參看/Article/1011. );12. ?復制代碼暫時就是這樣,后面會再根據(jù)需要進一步添加和講解。3 在Lib/Model目錄下,創(chuàng)建一個文件,命名為FormModel.class.php。命名規(guī)則剛才你已看了兩次。這里就不再多說,我們可以看到,數(shù)據(jù)表名是think_form,由于我們配置了數(shù)據(jù)表表名的前綴為think_,所以文件的命名直接使用 不含前綴的數(shù)據(jù)表表名+Model.class.php就行了。在這個文件中書寫代碼:1.2. 復制代碼就這樣定義一個類名就行了。該類繼承了Model類。至于自動驗證,自動過濾,自動填充這些,暫且不理會。4 提前先爽一下吧。再次利用PhpMyAdmin,在該表中插入一些數(shù)據(jù)sql如下:1. INSERT INTO think_form (id, title, content, create_time, update_time, status, email) VALUES2. (1, 這是測試數(shù)據(jù), dfdf, 1212724876, 0, 1, );復制代碼然后我們打開Myapp/Lib/Action/IndexAction.class.php文件,將里面的內(nèi)容刪掉。改成下面這樣:1. findall();5. dump ( $form );6. exit;7. 8. 9. ?復制代碼打開瀏覽器,輸入/,看,數(shù)據(jù)給輸出來了。今天先到這里,下一步我們繼續(xù)循序漸進。讓我們一起把這個Form最后變成一個有會員功能的留言板。第四節(jié) 簡單了解TP的模板輸出上一章節(jié)我們提及到,TP中的每一個xxxAction.class.php文件代表著一個應用模塊,此Action中的每一個方法(function)代表著一個操作,操作分為有輸出到模板的操作和只具執(zhí)行不需要輸出的操作。打開Myapp/Lib/Action/IndexAction.class.php文件,我們看看里面的基礎代碼1. class IndexAction extends Action2. public function index()3. 4. 復制代碼理論知識:1 在TP開發(fā)中,要增加一個應用模塊,就在Action文件夾里建立一個類,類的文件命名格式是模塊名稱+Action.class.php。例如我們這里的應用模塊是Index,所以定義文件名為IndexAction.class.php2 應用模塊類的定義要繼承框架的Action類。要為這個應用模塊添加一個操作,則定義一個以此操作為命名的function.例如上面的index操作。通常一個應用模塊中,會有若干操作(function)需要有與用戶交互的頁面,這就需要用到模板輸出,TP本身已內(nèi)置了一套具有TP特色的,很強大易擴展但應用非常方便兼簡單的模板引擎。在應有模塊中,如果某個操作是需要頁面顯示的,只要對應在Myapp/Tpl/default/里建立一個文件夾,文件夾以應用模塊的名稱來命名,然后在這個文件夾下,建立一個以這個function名稱來命名的html文件,就可以在這個方法中使用$this-display()方法來直接調(diào)用該模板。(當然也可以調(diào)用其它模塊下的其它模板或顯式指定模板文件位置和名稱,由于是循序漸進式的學習,就讓我們先忽略吧)了解這些理論后,我們先簡單實操一下這些知識。1 在Myapp/Tpl/default/下建立一個文件夾,根據(jù)應用模塊的名稱,我們將這個文件夾命名為Index2 在Myapp/Tpl/default/Index/下建立一個html文件,根據(jù)操作名稱,我們命名該文件為index.html3 打開Myapp/Lib/Action/IndexAction.class.php文件,修改代碼為1. assign(name,$value);6. $this-display();7. 8. 9. ?復制代碼代碼知識要點(摘自手冊:ThinkPHP模板指南,此后的知識要點均來自TP官方手冊,不再申明)在Action類里面使用 assign方法對模板變量賦值,無論何種變量類型都統(tǒng)一使用assign賦值。1. $this-assign(name,$value);復制代碼/ 下面的寫法是等效的1. $this-name = $value ;復制代碼/ 模板變量賦值后就需要調(diào)用模板文件來輸出相關的變量,模板調(diào)用通過display方法來實現(xiàn)1. $this-display();復制代碼4 打開Myapp/Tpl/default/Index/index.html文件,代碼為1. 2. 3. 4. $name5. 6. 7. 測試輸出: $name8. 9. 復制代碼代碼知識要點:模板變量使用$變量名稱這種標簽進行輸出。不同的模板變量類型,使用不同的標簽,標簽可以自行另外定義,暫且不理會。5 打開瀏覽器輸入地址:/,我們可以看到,定義的模板變量已經(jīng)輸出來了。附加補充知識:1 如果要同時輸出多個模板變量,可以使用下面的方式:1. $array = array();2. $arrayname = thinkphp;3. $arrayemail = ;4. $arrayphone = 12335678;5. $this-assign($array);復制代碼這樣,就可以在模板文件中同時輸出name、email和phone三個變量。2 我們使用上面的變量定義,將整個數(shù)組定義為一個模板變量來輸出1. $array = array();2. $arrayname = thinkphp;3. $arrayemail = ;4. $arrayphone = 12335678;5. $this-assign(array,$array);6. $this-display();復制代碼在html中,要輸出$arrayname的值,代碼是1. $ 或 $arrayname復制代碼3 將這個數(shù)組循環(huán)輸出3.1 IndexAction.class.php中代碼更改如下1. assign(array,$array);10. $this-assign(name,$value);11. $this-display();12. 13. 14. ?復制代碼3.2 將Myapp/Tpl/default/Index/index.html代碼更改如下:1. 2. 3. 4. $name5. 6. 7. 8. $vo9. 10. 11. 復制代碼代碼知識要點:name=array是指要循環(huán)的模板變量是array,id=vo是指這個數(shù)據(jù)在模板輸出時所使用的名稱對于TP的模板引擎輸出先簡單了解到這里。第五節(jié) 初步了解URL如何訪問模塊操作通過前面的學習,我們已大概地明白了應用模塊中的操作與模板如何對應。而這一節(jié)將簡單講解如何通過URL來訪問操作。由于我們要循序漸進,所以先只介紹下面章節(jié)要用到的知識,要想深入學習還請參看官方手冊URL設計和SEO支持TP支持四種URL訪問方式,默認是智能模式,所以我們就這種模式進行簡要說明。智能模式下的URL基本結構是這樣的http:/servername/appName/moduleName/actionName/params你可以理解為http:/服務器地址/入口文件位置/應用模塊名稱/具體操作名稱/GET變量參數(shù)解釋一下上面文字中所譯的URL結構,為什么appname項目名稱我將它譯成了入口文件位置:通常情況下,我們的入口文件index.php都是放在根目錄中,這時項目名稱就會被入口文件index.php所替代。在前幾節(jié)里,我們已知道,一個Action文件就是一個應用模塊,而應用模塊中的每個方法(function)就是一個具體操作。因此,假如要訪問我們實例中的Index模塊下的index操作。地址應該是/index.php/Index/index如果入口文件不是在服務器的根目錄,而是在myapp目錄下,那么入口文件位置就是 Myapp/index.php,此時上面的URL訪問就相應要換成/Myapp/index.php/Index/index這樣說理應很清楚了,不過別讓這么多index給混亂咯,對應URL的結構去明白每一個index的函義,同時注意大小寫簡單實操:1 打開Myapp/Lib/Action/IndexAction.class.php文件,在index這個function下再添加一個操作test1. assign(array,$array);10. $this-assign(name,$value);11. $this-display();12. 13. public function test()14. header(Content-Type:text/html; charset=utf-8);15. echo 哈,訪問正確!;16. 17. / 類定義end18. ?復制代碼2 嘗試對應URL結構,來訪問這個test操作,如果能成功看到echo的文字。則這節(jié)我們又學會了多一點知識。附加知識點: 去掉URL里面的index.php 要去掉URL里的入口文件index.php,使URL類似這樣的形式 /Index/index 可以按官方手冊所提供的方法進行如下操作。 1 確認httpd.conf配置文件中加載了mod_rewrite.so模塊 2 AllowOverride None 將None改為 All 3 打開Myapp/Conf/config.php文件,在配置的數(shù)組中添加一行: URL_MODEL=2, 在入口文件所在的同級目錄下,新建一個.htaccess文件,內(nèi)容是1. 2. RewriteEngine on3. RewriteCond %REQUEST_FILENAME !-d4. RewriteCond %REQUEST_FILENAME !-f5. RewriteRule (.*)$ index.php/$1 QSA,PT,L6. 復制代碼如果你的服務器環(huán)境支持rewrite,使用/Index/index就可以正常訪問到Index模塊的index操作了。 此后我們的學習中用到的URL,都是假定你使用了rewrite的情況。第六節(jié) CURD知識之一 C 創(chuàng)建(create)本帖最后由 zzguo28 于 2009-3-13 00:56 編輯注意:看到不少留言說操作不成功或出錯,請別忘記,此系列教程出來時,TP1.6還沒出來,所以系列6之前所介紹的示例和操作都還是標準版本1.5的,如果你使用1.6版,請對應兩者差異性。例如submit不能有name屬性,是因為原來1.5有字段緩存進行過濾處理。1.6沒有了字段緩存。例如數(shù)據(jù)自動驗證和自動填充都有了一定的區(qū)別。關于1.6的使用可以下載快速入門教程,是此系列新手篇的完整版,并且附有示例源碼。-第六節(jié) CURD知識之一 C 創(chuàng)建(create)從這一節(jié)開始,我們就要涉及到數(shù)據(jù)庫操作,TP對數(shù)據(jù)庫的操作非常簡便,以下是一些基礎知識講解。名詞解析:1CURD:代表數(shù)據(jù)庫四個基本操作:創(chuàng)建:create,更新:update,讀?。簉ead,刪除:delete2模型對象:即數(shù)據(jù)對象,你項目里每一個Model類文件都會對應著一個數(shù)據(jù)表(或者視圖),模型與數(shù)據(jù)表存在一種映射關系。TP約定了命名要遵循一定的規(guī)范,如果不符合,則需要根據(jù)情況進行額外的相應設置。例如Model類的tableName屬性在第三節(jié)時,曾略為提到Model類文件命名,現(xiàn)在再回顧一下這部分的內(nèi)容:我們之前在數(shù)據(jù)庫中,已建立了一個think_form數(shù)據(jù)庫表,并且在配置文件config.php中,我們定義了數(shù)據(jù)表的前綴是think_,模型類(Model)文件的命名規(guī)則是:不包括前綴的數(shù)據(jù)庫表表名并且首字母大寫+Model.class.php所以之前我們?yōu)閠hink_form數(shù)據(jù)表在Myapp/Lib/Model目錄下建立一個文件FormModel.class.php模型類的特殊命名還可以智能識別駝峰式的表命名,假設我們有個是類似think_new_table這樣的表可以命名為NewTableModel.class.php。默認配置便可以智能識別自動對應think_new_table表,因此不必修改配置。開發(fā)過程中,只要簡單地定義好與數(shù)據(jù)表對應的模型類(xxxModel.class.php),就可以進行對數(shù)據(jù)操作了。如何讓這個模型支持自動驗證,自動填充,自動過濾這些知識,在下面涉及到時會作相應講解。一般來說,在表中添加數(shù)據(jù)都是通過表單來建立,為了更直觀地學習CURD中的C,我們接下來建立個表單來進行添加數(shù)據(jù)的操作。之前我們已在Myapp/Lib/Model/下建立好FormModel.class.php類-模型(M)同時也在Myapp/Lib/Action/下添加了一個Index應用模塊和寫下了一個index操作-控制器(C)并且在Tpl目錄下建立了與之對應的模板目錄Index及index.html模板文件-視圖(V)MVC模式的開發(fā)已體現(xiàn)了出來。tdweb曾簡明扼要地概括了TP中這三者的關系,C的作用,就是從M中取得數(shù)據(jù)到V,使用TP以表單提交數(shù)據(jù)到庫,流程和你所了解的表單提交沒有什么區(qū)別,只是TP簡化了數(shù)據(jù)操作的處理過程。我們在實際操作中體會一下。先來看看我們所定義的數(shù)據(jù)表form的字段:1. id,/自動編號2. title,/標題3. content,/內(nèi)容4. create_time,/創(chuàng)建時間5. update_time/更新時間6. email,/郵箱7. status,/狀態(tài)復制代碼其中的create_time字段是為了記錄數(shù)據(jù)插入的時間,我們可以利用TP的數(shù)據(jù)自動填充來處理。在Model類定義 $_auto 屬性,可以完成數(shù)據(jù)自動處理功能,用來處理默認值和其他系統(tǒng)寫入字段。注意1:該自動填充可能會覆蓋表單提交項目。其目的是為了防止表單非法提交字段。注意2:要使用Model類的create方法創(chuàng)建數(shù)據(jù)對象的時候才會自動進行表單數(shù)據(jù)處理。1 打開Myapp/Lib/Model/FormModel.class.php文件,更改代碼為1. 復制代碼代碼知識要點:Model類的$_auto屬性由多個填充因子組成的數(shù)組,填充因子定義格式:array(填充字段,填充內(nèi)容,填充條件,附加規(guī)則)填充字段:就是需要進行處理的表單字段,這個字段并不一定要是數(shù)據(jù)庫表中的字段,對于表單內(nèi)的輔助檢測字段比如重復密碼和驗證碼也可以處理。填充條件:ADD | UPDATE | ALL(注意,此是1.5版本說明,1.6已改為1 2 3,后續(xù)教程有說明)當為ADD時,會在新增數(shù)據(jù)時自動填充,這是默認的處理方式當為UPDATE時,在更新數(shù)據(jù)的時候會自動填充當為ALL時,所有情況下都會進行自動填充附加規(guī)則:附加規(guī)則是針對填充內(nèi)容而言,表示該內(nèi)容填充的方式,包括function,callback,field,string對于field使用其它字段進行填充和string直接標示字符串作為值進行填充很好理解。例如上面1. array(status,1,ADD),復制代碼就是將狀態(tài)status字段的值直接以1填充.下面主要說說function與callback這兩個附加規(guī)則。1. protected $_auto=array(2. array(create_time,time,ADD,function),3. );復制代碼上面create_time代表了要處理的字段,填充內(nèi)容是time,附加規(guī)則是function使用函數(shù),填充條件是ADD新增時處理,那么整行代碼表示對create_time字段在新增的時候使time函數(shù)作為該字段的值進行自動填充。再看一個function作為附加規(guī)則的例子1. protected $_auto=array(2. array(password,md5,ADD,function),3. );復制代碼當使用function作為附加規(guī)則時,第二個填充內(nèi)容就代表了這個因子是一個函數(shù)名稱,該函數(shù)的參數(shù)就是代表填充字段的值,比如password的值是123456,則上面的代碼會先將這個值使用函數(shù)md5(123456),這樣處理后再插入到數(shù)據(jù)表中去。對于function(函數(shù))和callback(回調(diào)方法)理論是一樣的,只不過一個是表示填充內(nèi)容所寫的是函數(shù)名,另一個是表示填充內(nèi)容是類中的方法名。函數(shù)可以是PHP5內(nèi)置函數(shù)或你自己所寫的函數(shù)。而callback是當前模型類所能調(diào)用的一個方法。有關數(shù)據(jù)填充方面的詳細資料,請參看官方使用手冊 ThinkPHP數(shù)據(jù)操作指南2 打開Myapp/Tpl/default/Index/index.html文件,我們修改代碼將form寫進去1. 2. 3. 4. $title5. 6. 7. 8. 9. 標題:10. 11. 12. 13. 郵箱:14. 15. 16. 內(nèi)容:17. 18. 19. 20. 21. 22. 23. 復制代碼在上面代碼中,我們簡單地建了一個form表單,并將標題統(tǒng)一使用一個模板變量$title。action提交到的處理地址是_URL_/add,其中_URL_是一個常量定義,表示當前模塊地址,TP模板引擎會自動將這句解釋為/index.php/Index/add,常見的模板使用的常量有_ROOT_ 網(wǎng)站根目錄地址_APP_ 當前項目(入口文件)地址_URL_ 當前模塊地址_ACTION_ 當前操作地址_SELF_ 當前 URL 地址3 設置模板變量 $title ,增加add操作方法打開Myapp/Lib/Action/IndexAction.class.php文件,修改代碼如下1.2. assign(title,添加數(shù)據(jù));/這里設置了模板變量$title6. $this-display();7. 8. / 處理表單數(shù)據(jù)的方法9. function add()10. $Form = D(Form);11. if($Form-create() 12. $Form-add();13. $this-redirect();14. else15. header(Content-Type:text/html; charset=utf-8);16. exit($Form-getError(). 返 回 );17. 18. 19. /類定義 end20. ?復制代碼代碼知識要點:模板變量賦值前面的章節(jié)已介紹過。這里就不啰嗦了。我們來看看add方法的代碼。$Form = D(Form);這里使用了TP的特色單字母函數(shù)D,是操作數(shù)據(jù)庫時最常用的TP函數(shù),表示實例化Form對象,即$Form = new FormModel();D函數(shù)的具體代碼可以查看ThinkPHP目錄內(nèi)的common/function.php中的片段,它會自動引入Model類,并判斷之前如果實例化過這個Model,就不再實例化,若然該Model不存在,就會拋出異常錯誤,另外,D可以跨項目訪問Model,暫且忽略。$Form-create()使用Model類的Create方法創(chuàng)建一個Form對象,失敗會返回false。$Form-add();/add方法會將表單數(shù)據(jù)進行寫入$this-redirect();/執(zhí)行跳轉就這么簡單幾行代碼,便完成了對數(shù)據(jù)插入的處理?,F(xiàn)在我們可以嘗試一下在表單中輸入數(shù)據(jù)進行提交試試了。請先隨便插入幾條數(shù)據(jù),以便下一節(jié)我們繼續(xù)學習CURD中的R本帖最后由 zzguo28 于 2009-3-13 01:09 編輯很抱歉!不得不出這一篇過渡文章。為了讓這系列教程不致于日后會誤導,從這節(jié)開始,讓我們轉型到1.6版的使用方式上。但是對于1.6版的使用,我也是在摸索當中學習,錯誤和不足之處肯定會比較多,故懇請流年大哥和tdweb,東至,yhustc等大大可以及時指正和補充,在此先謝謝了。- 基于本學習系列1-4過渡到本節(jié)的補充說明 -說明1 從這節(jié)開始,TP或dev這兩個簡稱指的都是ThinkPHP1.6版,可以到svn下載。/svn/branches/dev下載后刪除原來的ThinkPHP框架文件,將dev同樣命名為ThinkPHP,并仍是放置于網(wǎng)站的根目錄下。另外,為了方便需要時可以對實例截圖而不引起讀者你誤解,基于我的網(wǎng)站目錄結構,現(xiàn)將Myapp的index.php位置更改到Myapp文件夾下(不再是原來的根目錄).步1:將根目錄中的原index.php剪切并粘貼到Myapp文件夾下。更改代碼為:1. run();14. ?復制代碼代碼補充注釋:代碼中項目名稱其實是可以不必定義的,系統(tǒng)會自動根據(jù)當前的目錄名定義名稱。步2: 將.htaccess文件復制一份粘貼到Myapp目錄下。步3: 將Cache目錄,Temp目錄,Data目錄清空。說明2 第五節(jié)中對于URL訪問的默認模式在dev版默認配置中,dispatch即URL調(diào)度功能是關閉的,所以在默認模式下,要訪問Index模塊的index操作,地址應是:index.php?m=index&a=index,m指的是模塊變量(Model),a指的是操作變量(Action)。如果要使用類似第五節(jié)中的index.php/moduleName/actionName方式,則要在config.php文件里設置DISPATCH_ON為true;并且,也只有開啟了此功能后,URL_MODEL的設置才會有效。(在上面的章節(jié)我們提及過,可以設置URL_MODEL為2來使用rewrite功能去除顯示index.php)所以,現(xiàn)在我們的config.php代碼是1. mysql, / 使用的數(shù)據(jù)庫是mysql5. DB_HOST=localhost,6. DB_NAME=myapp,/數(shù)據(jù)庫名7. DB_USER=root,8. DB_PWD=123456,/ 填寫你連接數(shù)據(jù)庫的密碼9. DB_PORT=3306,10. DB_PREFIX=think_, / 數(shù)據(jù)表表名的前綴 請參看/Article/1011. DISPATCH_ON= true,12. URL_MODEL=2,13. TMPL_VAR_IDENTIFY=array,/模板變量識別 留空自動判斷 array 數(shù)組 obj 對象14. DEBUG_MODE=true,/開啟調(diào)試模式15. );16. ?復制代碼代碼補充注釋:此節(jié)之后的內(nèi)容會涉及到模板輸出及數(shù)據(jù)操作,所以在這里明確設置了模板變量為數(shù)組,并開啟TP的調(diào)試模式。注意3:第六節(jié) CURD知識之一 C(創(chuàng)建)中的自動填充dev版的自動填充功能已移到AdvModel類中。要使用此功能,我們需要在Myapp/Lib/Model類文件中引入該類.那么再來看看我們所定義的數(shù)據(jù)表form的字段:1. id,/自動編號2. title,/標題3. content,/內(nèi)容4. create_time,/創(chuàng)建時間5. update_time/更新時間6. email,/郵箱7. status,/狀態(tài)復制代碼引用tdweb手記:如果需要新建數(shù)據(jù)時自動填入時間戳,只需要設置數(shù)據(jù)表字段名create_time,如果需要修改時自動保存時間戳,那么設置數(shù)據(jù)表字段名為update_time。如果你的數(shù)據(jù)表字段名不是默認的,那么需要指定,例如protected $autoCreateTimestamps = ctime;protected $autoUpdateTimestamps = utime;故此,讓我們打開Myapp/Lib/Model/FormModel.class.php文件,將代碼更改為如下:1. 復制代碼代碼補充注釋:注意:dev版的填充條件改為1 新增 2 更新 3 包含1和2,默認為新增。所以定義更方便了.而使用ADD | UPDATE | ALL會無效的(TO流年大哥:TP代碼還有一個特色就是函數(shù)或方法的命名很符合語言使用習慣,原來的add,update,all很直觀,易記,可惜沒了)array(field,填充內(nèi)容,填充條件,附加規(guī)則,額外參數(shù))alias_import($alias,$classfile=)快速定義和別名導入這是新

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論