目錄 它是一個(gè)MVC框架 框架,,即framework,。其實(shí)就是某種應(yīng)用的半成品,就是一組組件,,供你選用完成你自己的系統(tǒng),。 l Zend Framework l Yii l Symfony l Codelgniter l ThinkPHP l …… MVC是施樂帕克研究中心 (Xerox PARC)在八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,,至今已被廣泛使用,。 MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入,、處理和輸出分開,。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖,、控制器,。 M:Model模型 V:View視圖 C:Control 控制器 快速入門 控制器 視圖 模型 實(shí)用項(xiàng) l http:// l 下載thinkphp3.0 l 直接部署到項(xiàng)目中 l php5.2 thinkphp1.0 php5.0 thinkphp3.0 php5.2 thinkphp3.2.2 php5.3 項(xiàng)目布署流程: 1) 解壓thinkphp,,并進(jìn)入到解壓出來的文件夾 2) 將ThinkPHP文件夾放在我們的項(xiàng)目中 1) 開發(fā)項(xiàng)目入口文件 2) 運(yùn)行以上程序,自動(dòng)創(chuàng)建相應(yīng)的程序文件 看到以上界面,,說明項(xiàng)目創(chuàng)建成功 在我們的項(xiàng)目中,,自動(dòng)產(chǎn)生了一些文件夾,如下圖所示: 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í)目錄 l ~runtime.php 這個(gè)文件會(huì)自動(dòng)將項(xiàng)目的當(dāng)前配置,、公共函數(shù)等程序編譯到這個(gè)文件中,,下次程序運(yùn)行時(shí),直接運(yùn)行這個(gè)文件即可,。 以上URL中的Index會(huì)被自動(dòng)處理為模塊名 以上URL中的index會(huì)被自動(dòng)處理為動(dòng)作名 3) 開啟調(diào)試模式 代碼: 運(yùn)行: 開啟調(diào)試模式之后,,如果發(fā)生了一些錯(cuò)誤,會(huì)有一些提示信息,,建議: 開發(fā)時(shí),,開啟調(diào)試模式 布署時(shí),關(guān)閉調(diào)試模 如果你的項(xiàng)目路徑與本題相同,,可以不定義三個(gè)路徑常量 注意:開啟調(diào)試后,,不會(huì)產(chǎn)生runtime.php文件 4) 分析項(xiàng)目入口文件 5)默認(rèn)配置 為什么輸入地址之后,可以看到內(nèi)容 因?yàn)槭褂幸陨?/span>url時(shí),,會(huì)自動(dòng)加載Index模塊控制器下的index方法 在框架配置文件中,復(fù)制兩個(gè)配置選項(xiàng) 將以上選項(xiàng)放在項(xiàng)目配置文件中 6) 添加新的控制器以及方法 在Lib/Action下創(chuàng)建新的控制器GoodsAction 在GoodsAction中添加新方法add 運(yùn)行以上程序: 為add方法添加指定模板并顯示 一個(gè)項(xiàng)目對(duì)應(yīng)一個(gè)數(shù)據(jù)庫 一個(gè)數(shù)據(jù)庫中包含很多數(shù)據(jù)表 一個(gè)數(shù)據(jù)表就是一個(gè)模塊 一個(gè)模塊可以對(duì)應(yīng)一個(gè)控制器 在Tpl下創(chuàng)建Goods文件夾,,用于存放所有Goods模塊下的模板 修改控制器代碼: 運(yùn)行: 7) 配置項(xiàng)目的虛擬主機(jī) 修改apache配置文件: 修改hosts文件: 重啟apache并重新運(yùn)行: 控制器用于接收和處理用戶的請(qǐng)求 在Lib/Action下創(chuàng)建控制器文件 文件名:模塊名(首字母大寫)Action.class.php 如:我們有一張數(shù)據(jù)表:member,,會(huì)員表 /Lib/Action/MemberAction.class.php 控制器內(nèi)容: class 模塊名(首字母大寫)Action extends Action{ } 必須繼承父類控制器Action 代碼: 3、 url調(diào)度模式 url的調(diào)度模式就是url的訪問方式 ThinkPHP支持四種URL模式,,可以通過設(shè)置URL_MODEL參數(shù)來定義 這個(gè)配置選項(xiàng)的值共有四個(gè) 0 :普通模式 1 :pathinfo模式(默認(rèn)) 2 :rewrite模式 3 :兼容模式 1) 普通模式 語法: http://項(xiàng)目/入口文件?m=模塊名&a=動(dòng)作名 運(yùn)行: 2) pathinfo模式 語法: http://項(xiàng)目/入口文件/模塊名/動(dòng)作名 運(yùn)行: 在項(xiàng)目的配置文件中,,可以修改以下選項(xiàng)修改路徑分隔符 URL_PATHINFO_DEPR 訪問時(shí): 3) rewrite模式 (1) 修改config.php配置選項(xiàng) (2) httpd.conf配置文件中加載了mod_rewrite.so模塊 (3)AllowOverride None 將None改為 All (4)把下面的內(nèi)容保存為.htaccess文件放到入口文件的同級(jí)目錄下 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> 語法: http://項(xiàng)目/模塊名/動(dòng)作名 運(yùn)行: 4) 兼容模式 語法: http://項(xiàng)目/入口文件?s=/模塊名/動(dòng)作名 運(yùn)行: 空操作是指系統(tǒng)在找不到指定的操作方法的時(shí)候,,會(huì)定位到空操作(_empty)方法來執(zhí)行,,利用這個(gè)機(jī)制,我們可以實(shí)現(xiàn)錯(cuò)誤頁面和一些URL的優(yōu)化,。 語法: public function _empty($name){ } 1) 錯(cuò)誤頁面的定制 訪問時(shí): 2) 優(yōu)化url 訪問: 我們?cè)L問時(shí),,由于沒有shanghai方法,,所以會(huì)自動(dòng)定位到_empty方法中,,并將shanghai做為參數(shù)傳遞給$name。 空模塊的概念是指當(dāng)系統(tǒng)找不到指定的模塊名稱的時(shí)候,,系統(tǒng)會(huì)嘗試定位空模塊(EmptyAction),利用這個(gè)機(jī)制我們可以用來定制錯(cuò)誤頁面和進(jìn)行URL的優(yōu)化,。 語法: class EmptyAction extends Action{ } MODULE_NAME:請(qǐng)求的當(dāng)前模塊名稱 1) 錯(cuò)誤頁面的訂制 運(yùn)行: 系統(tǒng)找不到abc控制器,,所以會(huì)自動(dòng)定位到EmptyAction中。 2) 優(yōu)化url 運(yùn)行: 一般網(wǎng)站項(xiàng)目是由若干個(gè)小項(xiàng)目構(gòu)成的,,如:前臺(tái)、后臺(tái),、會(huì)員,、博客等 配置文件config.php中有兩個(gè)選項(xiàng),用于配置項(xiàng)目的分組 l APP_GROUP_LIST :分組列表 l DEFAULT_GROUP :默認(rèn)組名 1) 修改配置文件 2) 創(chuàng)建分組控制器目錄 3) 運(yùn)行 4) 對(duì)模板進(jìn)行分組 7,、 url大小寫 TP中的url嚴(yán)格區(qū)分大小寫,,如果想不區(qū)分大小寫,可以修改以下選項(xiàng): 配置文件:config.php l 'URL_CASE_INSENSITIVE’=>true 運(yùn)行: 在需要對(duì)用戶的操作信息進(jìn)行提示時(shí),,可以使用以下兩個(gè)方法: l success :操作成功時(shí)所調(diào)用的方法 l error :操作失敗時(shí)所調(diào)用的方法 配置文件:config.php l TMPL_ACTION_SUCCESS :success方法對(duì)應(yīng)的模板 l TMPL_ACTION_ERROR :error方法對(duì)應(yīng)的模板 代碼: 運(yùn)行: 配置文件中: 可以修改以上選項(xiàng),實(shí)現(xiàn)自定義模板 如果想實(shí)現(xiàn)頁面的重定向,,可以使用以下方法: redirect 語法: $this->redirect(“news/show”, array('id’=>2), 5, “頁面跳轉(zhuǎn)中” ); 參數(shù)1:跳轉(zhuǎn)地址 參數(shù)2:參數(shù)數(shù)組 參數(shù)3:停留時(shí)間 參數(shù)4:提示信息 用戶看到的并與之交互的界面 在tp中,,視圖主要包含兩部份: 1) 視圖類 2) 模板 默認(rèn)的模板文件定義規(guī)則: 模板目錄/[分組名/]模塊名/操作名+模板后綴 TMPL_TEMPLATE_SUFFIX :模板后綴名 l 'TMPL_L_DELIM'=>'<{', :模板左分界符 默認(rèn):{ l 'TMPL_R_DELIM'=>'}>', :模板右分界符 默認(rèn):} 模板賦值: $this->assign('模板變量名’,’值’); 模板輸出: $this->display('模板名’); 在tp的模板中,默認(rèn)有一些字符串表示一些路徑 l __PUBLIC__:當(dāng)前網(wǎng)站的公共目錄 l __APP__:當(dāng)前項(xiàng)目的URL地址 l __GROUP__:當(dāng)前分組的URL地址 l __URL__: 當(dāng)前模塊的URL地址 l __ACTION__:當(dāng)前操作的URL地址 l TMPL_PARSE_STRING :可以在配置文件中配置此選項(xiàng),,用于一些常用路徑的定義 模板文件: 運(yùn)行: 配置文件: 模板文件: l $this->fetch(); fetch :獲取內(nèi)容,返回字符串 display :輸出字符串 |
|