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