一、系統(tǒng)常量
ThinkPHP為我們準(zhǔn)備好的一些常量,在這些常量中已經(jīng)封裝好了相應(yīng)的功能和值
系統(tǒng)常量主要用在模塊的動(dòng)作中,以提高開發(fā)效率
注意,系統(tǒng)常量沒必要全記下來,但是一定得知道有這些東西,需要用到的時(shí)候可以很方便的查手冊
但是在學(xué)習(xí)的時(shí)候,最好動(dòng)手敲一遍,輸出看看,熟悉熟悉
  
  
  
代碼如下,可以復(fù)制過去自己測試一下
1 echo __ROOT__.'<br/>';//網(wǎng)站根目錄,即Apache的htdocs目錄/html' target='_blank'>虛擬主機(jī)下的當(dāng)前項(xiàng)目(Project)目錄 2 echo __APP__.'<br/>';//當(dāng)前應(yīng)用(Application)入口文件地址 3 echo __URL__.'<br/>';//當(dāng)前模塊地址 4 echo __ACTION__.'<br/>';//當(dāng)前動(dòng)作地址 5 echo __SELF__.'<br/>';//當(dāng)前RUL地址,即此時(shí)瀏覽器地址欄中顯式的URL地址!所謂顯式就是瀏覽器地址欄是啥這個(gè)常量就是啥,比如說訪問Index模塊的index動(dòng)作,模塊名和動(dòng)作名都是可以省略的,當(dāng)然也是可以帶上的,那么顯然這兩種情況中瀏覽器地址欄中的URL地址就不一樣了,那么該常量也就是不一樣咯! 6 echo __CURRENT__.'<br/>';//當(dāng)前模塊對應(yīng)的模板目錄 7 echo ACTION_NAME.'<br/>';//當(dāng)前動(dòng)作名稱 8 echo APP_PATH.'<br/>';//當(dāng)前應(yīng)用目錄,注意,是相對于單入口文件的 9 echo APP_NAME.'<br/>';//當(dāng)前應(yīng)用名稱10 echo APP_TMPL_PATH.'<br/>';//當(dāng)前應(yīng)用模板目錄,即皮膚目錄11 echo APP_PUBLIC_PATH.'<br/>';//當(dāng)前應(yīng)用公共文件目錄,注意這個(gè)輸出是當(dāng)前應(yīng)用模板(皮膚)目錄下的Public目錄12 echo CACHE_PATH.'<br/>';//當(dāng)前應(yīng)用緩存目錄,即./應(yīng)用名/Runtime/Cache/,就是編譯后模板目錄13 echo CONFIG_PATH.'<br/>';//當(dāng)前應(yīng)用配置文件目錄14 echo COMMON_PATH.'<br/>';//當(dāng)前應(yīng)用公共文件目錄(注意,與APP_PUBLIC_PATH不同),即./應(yīng)用名/Common/15 echo DATA_PATH.'<br/>';//當(dāng)前應(yīng)用數(shù)據(jù)文件目錄,即./應(yīng)用名/Runtime/Data/。存放的是與數(shù)據(jù)庫表結(jié)構(gòu)相關(guān)的數(shù)據(jù)文件,因?yàn)門hinkPHP會(huì)自動(dòng)緩存表相關(guān)的結(jié)構(gòu)信息16 echo GROUP_NAME.'<br/>';//當(dāng)前分組名稱17 echo HTML_PATH.'<br/>';//當(dāng)前應(yīng)用靜態(tài)文件目錄,編譯后模板運(yùn)行之后生成的靜態(tài)文件目錄,./應(yīng)用名/Html/18 echo LANG_SET.'<br/>';//瀏覽器語言19 echo LIB_PATH.'<br/>';//當(dāng)前應(yīng)用類庫目錄,即./應(yīng)用名/Lib/20 echo LOG_PATH.'<br/>';//當(dāng)前應(yīng)用日志目錄,即./應(yīng)用名/Runtime/Logs/21 echo LANG_PATH.'<br/>';//當(dāng)前應(yīng)用語言包目錄,即./應(yīng)用名/Lang/22 echo MODULE_NAME.'<br/>';//當(dāng)前模塊名稱23 echo MEMORY_LIMIT_ON.'<br/>';//是否開啟內(nèi)存使用限制24 echo MAGIC_QUOTES_GPC.'<br/>';//是否開啟魔術(shù)轉(zhuǎn)義25 echo TEMP_PATH.'<br/>';//當(dāng)前應(yīng)用臨時(shí)文件目錄,即./應(yīng)用名/Runtime/Temp/26 echo TMPL_PATH.'<br/>';//當(dāng)前應(yīng)用模板目錄(注意與APP_TMPL_PATH區(qū)別開),即./應(yīng)用名/Tpl/27 echo THINK_PATH.'<br/>';//系統(tǒng)目錄28 echo THINK_VERSION.'<br/>';//系統(tǒng)版本29 echo TEMPLATE_NAME.'<br/>';//當(dāng)前應(yīng)用所用的皮膚名稱,即default30 echo TEMPLATE_PATH.'<br/>';//當(dāng)前應(yīng)用模板路徑,即./Index/Tpl/default/。實(shí)際上與APP_TMPL_PATH結(jié)果一樣31 echo VENDOR_PATH.'<br/>';//第三方類庫目錄,即./ThinkPHP/Vendor/32 echo WEB_PUBLIC_PATH.'<br/>';//項(xiàng)目(Project)公共文件目錄,注意,與APP_PUBLIC_PATH區(qū)別開!雖然兩者都是用來存放JS、CSS、Images等等需要返回給客戶端的文件的,但是在實(shí)際開發(fā)中,一般都是存放在項(xiàng)目(Project)公共文件目錄中的,原因有兩點(diǎn),第一、本來一般來說,這些JS、CSS、Images在整個(gè)項(xiàng)目(Project)中的各個(gè)應(yīng)用(Application)中都是需要用到的,為啥不放在一起減少冗余呢;第二,便于瀏覽器緩存,因?yàn)闉g覽器是通過URL去緩存信息的,如果URL不變,瀏覽器就會(huì)從其緩存中取東西,而不是真的向服務(wù)器發(fā)送請求,而這種機(jī)制對于加載JS、CSS、Images等等有益的,可以減少網(wǎng)站流量!
二、模板替換
所謂模板替換,就是對已經(jīng)編譯過但是還未正式輸出的模板中的一些模板特殊字符串進(jìn)行替換,相當(dāng)于Smarty模板的后過濾器!
1、模板替換規(guī)則
·默認(rèn)替換規(guī)則
../Public /項(xiàng)目名/應(yīng)用名/Tpl/Default/Public 該特殊字符通常后面接的是Js或Css或Images目錄,顯然是用于獲取js、css、image的
__URL__ /項(xiàng)目名/入口文件/模塊名 該特殊字符通常后面接一個(gè)動(dòng)作名,用于模板中(模塊內(nèi))的跳轉(zhuǎn),比如說表單提交、超鏈接等等
__Public__ /項(xiàng)目名/Public 該特殊字符通常后面接的是Js或Css或Images目錄,顯然是用于獲取js、css、image的
__TPML__ /項(xiàng)目名/應(yīng)用名/Tpl/Default
__APP__ /項(xiàng)目名/入口文件 該特殊字符通常后面接一個(gè)模塊(當(dāng)然包括動(dòng)作名),用于模板中(模塊間)的跳轉(zhuǎn)
__ACTION__ /項(xiàng)目名/入口文件/模塊名/動(dòng)作名 該特殊字符就表示當(dāng)前訪問的動(dòng)作的URL
__SELF__ /項(xiàng)目名/入口文件/... 該特殊字符表示瀏覽器地址欄中的完整URL
·自定義替換規(guī)則
ThinkPHP支持自定義模板替換規(guī)則,但是必須在應(yīng)用配置文件中進(jìn)行配置。注意,這些模板替換的特殊字符是嚴(yán)格區(qū)分大小寫的!配置如下
    
從以上配置中可以看出,不僅可以增加新的替換規(guī)則,還支持修改默認(rèn)替換規(guī)則
2、在MVC模式的系統(tǒng)中,一個(gè)值得注意的問題
一切跳轉(zhuǎn)必須經(jīng)過控制器(訪問模塊執(zhí)行動(dòng)作),絕不可直接訪問(跳轉(zhuǎn)到)模板!因?yàn)槿绻苯釉L問模板,模板中的模板標(biāo)記是不會(huì)被解析的!
舉個(gè)例子如下
  
  
  
  
  
通過測試發(fā)現(xiàn)了兩個(gè)問題,第一,用于模板替換的特殊字符再模板中是不需要通過'.'與其它字符連接起來的,不要與在模塊中使用的系統(tǒng)常量弄混了呦;第二,在URL中,/think2.1/Index/Tpl/default//Index/top.html也是可以正確訪問的,雖然在default和Index之間有兩個(gè)/
PHP編程鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選