關於thinkphp5自定義標籤庫解析的問題

今天tp5的自定義標籤庫着實坑了我一把,原因有兩點:

1.預加載標籤是有緩存的,你設置了預加載標籤庫,要刪除緩存後重新刷新纔有效,否則無效,這導致我調試的時候不知道自己到底設置對了沒有
2.我一直以爲配置是會自動繼承父級的配置的,也就是說,在模塊中我只需要寫好不同的配置就行,然後事實上一位數組的配置確實是這樣,但是二位數組的時候第二層數組是會直接覆蓋第一層數組的,舉個栗子:
在這裏插入圖片描述
猜猜結果是什麼,對了,結果是a和b被完全覆蓋,ac,dy,bc直接不見了,但是f還在
所以要正確加載標籤庫,應該在對應的模塊下面加載
在這裏插入圖片描述
配置好後記得刪除緩存
關於大小寫的問題,加載的時候都要大寫,在模板中要小寫,切記!!!
在這裏插入圖片描述

在這裏插入圖片描述
補充另一個坑爹的東西,如圖
在這裏插入圖片描述
tp中的標籤參數是可以傳變量的,所以我也理所當然的認爲這裏傳遞的變量會自動解析成變量供我在標籤庫中使用,然而…我想多了!,這裏傳遞的是什麼在標籤庫中獲取到的就是什麼!!!
在這裏插入圖片描述
起初我也以爲$this->autoBuildVar就是解析變量的函數,然而又不是!!!這個函數僅僅是把你傳遞的字符串轉換爲$xxx的變量格式,想要把傳遞的變量真正解析出來,需要你在最後拼接的字符串中拼接出來,就像上圖中的$__TAG__數組,起初我是直接把參數的$tag json序列化放進去,以爲變量就會自動解析,然後還是學藝不精啊,各位同學,請記住啊,在標籤庫中獲取的參數如果是變量,切記要在拼接的時候放在php內容裏面拼接就可以了.
上圖我使用了type來判斷,一定要放在這裏面,因爲$parse這裏面的代碼是最終插入到模板的,自然帶php的代碼會解析爲真正的php代碼,而上面的代碼都不會在模板中使用,這也是在外面無法解析的真正原因!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章