国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

ThinkPHP教程_PHP框架之ThinkPHP(三)系統(tǒng)常量與模板替換

2020-03-22 17:51:58
字體:
供稿:網(wǎng)友
  • 一、系統(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)系我們修改或刪除,多謝。

  • 發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 临漳县| 高台县| 延川县| 尤溪县| 龙海市| 阿拉善左旗| 墨竹工卡县| 高安市| 宜都市| 宜兴市| 阜新市| 兴隆县| 舞阳县| 吴旗县| 分宜县| 屏南县| 莱阳市| 泉州市| 体育| 嘉禾县| 岚皋县| 杨浦区| 南陵县| 双桥区| 辽阳县| 化州市| 通州市| 稷山县| 铜梁县| 昌图县| 木里| 加查县| 葫芦岛市| 霍林郭勒市| 灵寿县| 农安县| 东阿县| 韩城市| 永年县| 贵定县| 咸宁市|